Gradle 基础教程 - Hello World
学习任何技术类的新东西,最简单的入门就是 Hello World。因为它代表了最少的知识点,也代表也之前环境配置的成功。学习 Gradle 也不例外。
如果你使用过 Maven ,那应该知道,Maven 把所有的构建配置项都写在一个 .pom
的配置文件里。Gradle 也不例外,它也需要有一个文件来保存所有的构建配置项,这个文件就是 build.gradle
。
在某个位置新建一个目录 helloworld
我的习惯,在 Windows 上,先会在
D
盘的workspace
目录下新建gradle
目录,然后再新建helloworld
目录,而在 Linux 或 macOS 下,则会在用户目录~
下新建workspace
然后在新建目录gradle/helloworld
目录
然后在 helloworld
目录里新建一个文件 build.gradle
,新建完成后目录结果如下
D: └── workspace └── gradle └── helloworld └── build.gradle
或
~ └── workspace └── gradle └── helloworld └── build.gradle
新建完 build.gradle
文件后,我们就可以在 helloworld
目录下运行 gradle
命令了
[yufei@www.twle.cn helloworld]$ gradle Starting a Gradle Daemon (subsequent builds will be faster) > Task :help Welcome to Gradle 4.10.2. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see a list of command-line options, run gradle --help To see more detail about a task, run gradle help --task <task> For troubleshooting, visit https://help.gradle.org BUILD SUCCESSFUL in 10s 1 actionable task: 1 executed [yufei@www.twle.cn helloworld]$
可以看到,命令执行成功,但因为没有任何任务,所以其实什么也没有
接下来我们就要往 build.gradle
里添加一些东西了。
Gradle 的机制
一个 Gradle 项目由两大部分组成: 项目定义和项目下的多个任务。
- 项目定义: 项目定义主要是定义一个项目的元数据,比如项目的名称、项目使用的 Java 版本、项目的依赖等
- 任务: 可以在该项目上执行的一些动作,比如
build
构建、test
测试、run
运行。比如编译某些类,创建 JAR,生成 Javadoc 或将一些存档发布到存储库。
因此,一个 build.gradle
脚本其实就只做两件事:一个是项目,另一个是任务。
每个 Gradle 构建可以包含一个或多个项目。
编写构建脚本
Gradle 使用 Groovy 语言编写构建脚本。因为 Gradle 只是少量的使用了几个 DSL ,因此一般使用的时候并不需要完全懂得 Groovy 语言。
Gradle 使用基于 Groovy 语言的特定领域描述语言 ( Domain Specific Language ,简称 DSL ) 来描述一个构建。
Gradle 的每个构建脚本都使用 UTF-8 编码,脱机保存并统一命名为 build.gradle
build.gradle
Gradle 命令在运行 Gradle 构建时,会查找当前目录下的 build.gradle
的文件。
其实,不管当前目录下有没有存在 build.gradle
,gradle
命令都会执行成功,如果不存在,只是表示没有项目和任务而已
我们做一个试验,先删除 helloworld
目录下的 build.gradle
,然后运行 gradle
命令,结果如下
[yufei@www.twle.cn helloworld]$ gradle > Task :help Welcome to Gradle 4.10.2. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see a list of command-line options, run gradle --help To see more detail about a task, run gradle help --task <task> For troubleshooting, visit https://help.gradle.org BUILD SUCCESSFUL in 1s 1 actionable task: 1 executed
接着,我们重新创建 build.gradle
文件,然后添加以下内容
task hello { println 'Hello World!' println '你好,简单教程!' }
保存后,我们使用 gradle -q hello
运行如下
[yufei@www.twle.cn helloworld]$ gradle -q hello Hello World! 你好,简单教程!
是不是很简单!
上面我们提到,一个 Gradle 由一个项目定义和多个任务组成,而 task
关键字用于定义一个任务,紧接着 tast
关键字的是一个任务名。然后是一堆大括号扩起来的要执行的具体任务
好了,既然能够输出 Hello World 了,那就说明我们已经迈出了第一步了。