任务代表构建执行的某个独立工作单元,例如编译类、创建 JAR、生成 Javadoc 或将归档发布到仓库。

gradle basic 5

任务是所有 Gradle 构建的构建块。

常见的任务类型包括

  • 编译源代码

  • 运行测试

  • 打包输出(例如,创建 JAR 或 APK)

  • 生成文档(例如,Javadoc)

  • 将构建 Artifacts 发布到仓库

每个任务是独立的,但可以依赖其他任务先运行。Gradle 利用此信息计算出执行任务最有效的顺序——跳过任何已经是最新的任务。

运行任务

要运行任务,请在项目根目录中使用 Gradle Wrapper。例如,要运行 build 任务

$ ./gradlew build

这将运行 build 任务及其所有依赖项。

列出可用任务

Gradle 插件和您的构建脚本定义了项目中有哪些任务可用。要查看它们:

$ ./gradlew tasks

这会显示一个分类的任务列表

Application tasks
-----------------
run - Runs this project as a JVM application

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

...

Documentation tasks
-------------------
javadoc - Generates Javadoc API documentation for the main source code.

...

Other tasks
-----------
compileJava - Compiles main Java source.

...

您可以使用 ./gradlew <task-name> 命令直接运行这些任务中的任何一个。

运行任务

如果您的构建文件中应用了 application 插件,则 run 任务应该可用。您可以像这样运行项目:

$ ./gradlew run

示例输出

> Task :app:compileJava
> Task :app:processResources NO-SOURCE
> Task :app:classes

> Task :app:run
Hello World!

BUILD SUCCESSFUL in 904ms
2 actionable tasks: 2 executed

Gradle 运行了执行您的应用程序所需的所有任务,包括先进行编译。在此示例中,run 任务的输出是在控制台打印的 Hello World 语句。

任务依赖

大多数任务不会独立运行。Gradle 知道哪些任务依赖于哪些其他任务,并将自动按正确的顺序运行它们。

例如,当您运行 ./gradlew build 时,Gradle 也会先运行 compileJavatestjar 等任务——因为 build 依赖于它们:

$ ./gradlew build

> Task :app:compileJava
> Task :app:processResources NO-SOURCE
> Task :app:classes
> Task :app:jar
> Task :app:startScripts
> Task :app:distTar
> Task :app:distZip
> Task :app:assemble
> Task :app:check
> Task :app:build

BUILD SUCCESSFUL in 764ms
7 actionable tasks: 7 executed

您无需担心顺序——Gradle 会为您处理。

要了解如何定义自己的任务以及如何控制它们的运行,请参阅任务开发章节

下一步: 了解插件 >>