01-Gradle简单安装、介绍、使用
简单环境配置:
如果需要使用Gradle,可以简单到官网上进行查看教程 Gradle官方教程
重要:如果需要使用Gradle,那么至少需要准备Java开发环境JDK-8或者以上。
简而言之,如果是MacOS,可以安装 brew
软件,从而进行安装
安装指令: brew install gradle
。如果没有安装,可以参考 brew官网 进行安装。
如果是Win或者其他,请在 brew官网 上进行参考。(看起来是可以有一个安装包,一键安装即可)
安装完成之后,在MacOS或者Linux中,可以进行配置环境变量,导入之后,直接在终端中可以输入命令进行使用了。方法是:使用 vi 或者 vim 命令打开 ~/.bashrc (MacOS中是 ~/.zshrc) 文件,引入内容:
# 这里放置机器的GRADLE目录
GRADLE_PATH=/opt/gradle/gradle-8.1.1/bin
export PATH=$PATH:$GRADLE_PATH
之后,保存配置文件 source ~/.zshrc
(MacOS) OR source ~/.bashrc
(Linux)即可 。最后在你的终端上,输入 gradle -v
即可知道你的环境有没有配置好。
简单实用Gradle创建项目
使用终端打开一个文件夹,在该文件夹下使用命令 gradle init
即可进行项目配置。根据gradle的提示进行创建项目。之后即可开始Gradle的旅行了。
项目创建完成后,build.gralde
文件为每个项目首先执行的文件。因此有部分其他文件的定义,可以放在这个文件。例如你创建了一个与 build.gradle
文件同级的文件 something.gradle
,此时你在新的文件中写入你的内容是不起效的。你需要在 build.gradle
中进行引入你的新文件,例如: apply from:'something.gradle'
此时,新文件才能够进行生效。
简单介绍
如下的内容基于:
Gradle是一个开源自动化构建工具。Gradle足够灵活,几乎可以构建任何类型的软件。Gradle对所需要构建的或者如何构建的毫不关心。这使得Gradle特别灵活。
Gradle将其构建模型建模为任务(工作单元)的有向无环图(以下均称有向无环图为:DAG)。这意味着构建实质上配置了一组任务,并根据它们的依赖关系将它们连接在一起以创建该DAG。创建任务图后,Gradle将确定需要按顺序运行的任务,然后继续执行它们。
Gradle 是一款非常优秀的构建系统工具,它的 DSL 基于 Groovy 实现,可以让你很方便地通过代码控制这些 DSL 来达到你构建的目的。 Gradle 构建的大部分功能都是通过插件的方式来实现 ,所以非常灵活方便,如果内置插件不能满足你的需求你可以自定义自己的插件 。
DLS (domain-specfic language) 领域特定语言。是一种旨在特定领域下的上下文的语言。DSL 并不具备很强的普适性,它是仅为某个适用的领域而设计的,但它也足以用于表示这个领域中的问题以及构建对应的解决方案。
可以参考一下阿里开发者社区的文档: 一杆到底:DSL 领域特定语言
Gradle具备如下的特点:
- 高效的
- Gradle avoids unnecessary work by only running tasks that need to do work because inputs or outputs have changed. Gradle uses various caches to reuse outputs from previous builds. With a shared build cache, you can even reuse outputs from other machines.
- 具备JVM支持的
- Gradle runs on the JVM. This is a bonus for users familiar with Java, since build logic can use the standard Java APIs. It also makes it easy to run Gradle on different platforms.
- 遵守惯例
- Gradle makes common types of projects easy to build through conventions. Plugins set sensible defaults to keep build scripts minimal. But these conventions don’t limit you: you can configure settings, add your own tasks, and make many other customizations in your builds.
- 易于扩展的
- Most builds have special requirements that require custom build logic. You can readily extend Gradle to provide your own build logic with custom tasks and plugins. See Android builds for an example: they add many new build concepts such as flavors and build types.
- 具备IDE支持的
- Several major IDEs provide interaction with Gradle builds, including Android Studio, IntelliJ IDEA, Eclipse, VSCode, and NetBeans. Gradle can also generate the solution files required to load a project into Visual Studio.
- 可视化的
- Build Scan provides extensive information about a build that you can use to identify issues. You can use Build Scans to identify problems with a build’s performance and even share them for debugging help.
简单使用
Gradle能够把所有的任务,构建成一个DAG,然后进行处理。我们可以先进行简单的任务构建。例如可以使用如下的方式进行构建任务。构建完成该任务之后,可以使用 ./gradlew tasks
进行查看该问题,并且可以使用 ./gradlew taskname
的形式运行该任务。
tasks.register("taskname") {
group 'taskGroup'
description = 'this is description'
dependsOn tasks
doFirst {}
doLast {}
}
对于上述任务的部分说明:
- group 任务所在组,后面接组的名称。因此可以使用这个关键字,把项目里面的所有任务分成不同的组,以实现不同的能力
- description 对于该任务的描述,可以使用
./gradlew tasks
进行查看 - dependsOn 该任务的前置依赖任务。即在运行该任务的时候,仍需要执行哪些前置的任务
- doFirst {} 执行该任务时,首先会执行闭包中的内容
- doLast {} 执行该任务时,最后会执行闭包中的内容