命令行界面是与 Gradle 交互的主要方法

以下是执行和自定义 Gradle 命令行的参考。它也可用作编写脚本或配置持续集成的参考。

强烈建议使用Gradle Wrapper。在以下示例中,请用 ./gradlew(在 macOS / Linux 中)或 gradlew.bat(在 Windows 中)代替 gradle

在命令行上执行 Gradle 符合以下结构:

gradle [taskName...] [--option-name...]

选项允许出现在任务名称之前之后

gradle [--option-name...] [taskName...]

如果指定多个任务,应使用空格分隔它们。

gradle [taskName1 taskName2...] [--option-name...]

接受值的选项可以在选项和参数之间使用或不使用 = 来指定。建议使用 =

gradle [...] --console=plain

启用特定行为的选项具有长格式选项,其反向选项使用 --no- 指定。以下是相反的示例。

gradle [...] --build-cache
gradle [...] --no-build-cache

许多长格式选项都有等效的短格式选项。以下是等效的示例:

gradle --help
gradle -h
许多命令行标志可以在 gradle.properties 文件中指定,以避免手动输入。详情请参阅配置构建环境指南

命令行用法

以下章节描述了 Gradle 命令行界面的使用方法。

一些插件也会添加自己的命令行选项。例如,--tests 选项是由Java 测试过滤添加的。关于如何为自己的任务暴露命令行选项的更多信息,请参阅声明命令行选项

执行任务

您可以在项目报告部分了解哪些项目和任务可用。

大多数构建支持一组称为生命周期任务的通用任务。这些任务包括 buildassemblecheck 任务。

要在根项目上执行名为 myTask 的任务,请键入:

$ gradle :myTask

这将运行单个 myTask 及其所有依赖项

指定任务选项

要将选项传递给任务,请在任务名称后以 -- 作为选项名称的前缀:

$ gradle :exampleTask --exampleOption=exampleValue

区分任务选项和内置选项

Gradle 不会阻止任务注册与 Gradle 内置选项(例如 --profile--help)冲突的选项。

您可以在命令中的任务名称前使用 -- 分隔符来解决任务选项与 Gradle 内置选项的冲突:

$ gradle [--built-in-option-name...] -- [taskName...] [--task-option-name...]

考虑一个名为 mytask 并接受名为 profile 选项的任务:

  • gradle mytask --profile 中,Gradle 会将 --profile 视为内置的 Gradle 选项。

  • gradle -- mytask --profile=value 中,Gradle 会将 --profile 作为任务选项传递。

在多项目构建中执行任务

多项目构建中,可以使用 : 分隔子项目名称和任务名称来执行子项目任务。当从根项目运行时,以下示例是等效的:

$ gradle :subproject:taskName
$ gradle subproject:taskName

您也可以使用仅包含任务名称的任务选择器来为所有子项目运行任务。

当从根项目目录调用时,以下命令会为所有子项目运行 test 任务:

$ gradle test

回顾总结:

// Run a task in the root project only
$ gradle :exampleTask --exampleOption=exampleValue

// Run a task that may exist in the root or any subproject (ambiguous if defined in more than one)
$ gradle exampleTask --exampleOption=exampleValue

// Run a task in a specific subproject
$ gradle subproject:exampleTask --exampleOption=exampleValue
$ gradle :subproject:exampleTask --exampleOption=exampleValue
一些任务选择器,如 helpdependencies,只会对其被调用的项目运行任务,而不会在所有子项目上运行。

从子项目内部调用 Gradle 时,应省略项目名称:

$ cd subproject
$ gradle taskName
从子项目目录执行 Gradle Wrapper 时,请相对引用 gradlew。例如:../gradlew taskName

执行多个任务

您也可以指定多个任务。任务的依赖项决定了精确的执行顺序,没有依赖项的任务可能会比命令行中列出的顺序更早执行。

例如,以下命令将按照命令行中列出的顺序执行 testdeploy 任务,并且也会执行每个任务的依赖项。

$ gradle test deploy

命令行顺序安全

尽管 Gradle 始终会尝试快速执行构建,但也会遵守命令行顺序的安全规则。

例如,以下命令将执行 cleanbuild 及其依赖项:

$ gradle clean build

然而,命令行顺序所隐含的意图是 clean 应该先运行,然后才是 build。如果在 build 之后执行 clean 是不正确的,即使这样做会使构建执行得更快,因为 clean 会移除 build 创建的内容。

反之,如果命令行顺序是 build 后跟 clean,那么在 build 之前执行 clean 也是不正确的。尽管 Gradle 会尽可能快地执行构建,但它也会尊重命令行上指定任务顺序的安全规则,并确保当按该顺序指定时,cleanbuild 之前运行。

请注意,命令行顺序安全依赖于任务正确声明它们创建、消费或移除的内容。

排除任务执行

您可以使用 -x--exclude-task 命令行选项并提供要排除的任务名称来排除任务的执行:

$ gradle dist --exclude-task test
> Task :compile
compiling source

> Task :dist
building the distribution

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed
commandLineTutorialTasks

您可以看到 test 任务没有被执行,即使 dist 任务依赖于它。test 任务的依赖项(例如 compileTest)也没有被执行。其他任务依赖于 test 的依赖项(例如 compile)仍然会被执行。

强制执行任务

您可以使用 --rerun-tasks 选项强制 Gradle 执行所有任务,忽略最新检查

$ gradle test --rerun-tasks

这将强制执行 test 及其所有任务依赖项。这类似于运行 gradle clean test,但不会删除构建生成的输出。

或者,您可以使用内置的 任务选项 --rerun 来告诉 Gradle 重新运行特定任务。

任务失败后继续构建

默认情况下,当任何任务失败时,Gradle 会中止执行并使构建失败。这使得构建能更快完成,并防止级联故障掩盖错误的根本原因。

您可以使用 --continue 选项强制 Gradle 在发生失败时执行所有任务:

$ gradle test --continue

当使用 --continue 执行时,如果某个任务的所有依赖项都成功完成,Gradle 会执行构建中的每个任务。

例如,如果被测试的代码中存在编译错误,则测试不会运行,因为 test 任务依赖于 compilation 任务。Gradle 会在构建结束时输出遇到的每个失败。

如果任何测试失败,许多测试套件会使整个 test 任务失败。代码覆盖率和报告工具通常在测试任务之后运行,因此“快速失败”行为可能会在这些工具运行之前中止执行。

名称缩写

在命令行上指定任务时,您不必提供任务的全名。您可以提供任务名称的一部分,只要足以唯一标识该任务即可。例如,gradle che 很可能足以让 Gradle 识别 check 任务。

同样适用于项目名称。您可以使用命令 gradle lib:chelibrary 子项目中执行 check 任务。

对于更复杂的缩写,您可以使用驼峰命名法模式。这些模式会被展开以匹配驼峰命名法和烤串命名法名称。例如,模式 foBa(或 fB)匹配 fooBarfoo-bar

更具体地说,您可以使用命令 gradle mAL:cTmy-awesome-library 子项目中运行 compileTest 任务。

$ gradle mAL:cT
> Task :my-awesome-library:compileTest
compiling unit tests

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

缩写也可以与 -x 命令行选项一起使用。

跟踪名称展开

对于复杂的项目,执行的任务是否是预期的可能会产生歧义。使用缩写名称时,一个小的拼写错误可能导致执行意外的任务。

当启用 INFO 或更详细的日志记录时,输出将包含有关项目和任务名称展开的额外信息。

例如,在前面的示例中执行 mAL:cT 命令时,以下日志消息将可见:

No exact project with name ':mAL' has been found. Checking for abbreviated names.
Found exactly one project that matches the abbreviated name ':mAL': ':my-awesome-library'.
No exact task with name ':cT' has been found. Checking for abbreviated names.
Found exactly one task name, that matches the abbreviated name ':cT': ':compileTest'.

常用任务

以下是内置插件和大多数主要 Gradle 插件应用的常见任务约定。

计算所有输出

在 Gradle 构建中,通常由 build 任务负责汇集所有输出并运行所有检查。

$ gradle build

运行应用程序

通常应用程序会使用 run 任务运行,该任务负责汇集应用程序并执行某个脚本或二进制文件。

$ gradle run

运行所有检查

通常,包括测试和 Lint 在内的所有验证任务都使用 check 任务执行。

$ gradle check

清理输出

您可以使用 clean 任务删除构建目录的内容。这样做会导致预计算的输出丢失,从而大大增加后续任务执行的构建时间。

$ gradle clean

项目报告

Gradle 提供了几个内置任务,用于显示构建的特定详细信息。这有助于理解构建结构和依赖项,以及调试问题。

列出项目

运行 projects 任务会为您提供所选项目的子项目列表,以层级结构显示:

$ gradle projects

您也可以在构建扫描 (Build Scans) 中获取项目报告。

列出任务

运行 gradle tasks 会为您提供所选项目的主要任务列表。该报告显示项目的默认任务(如果有)以及每个任务的描述:

$ gradle tasks

默认情况下,此报告仅显示分配给任务组的任务。

列出任务时,组(例如验证、发布、帮助、构建等)会作为每个部分的标题显示:

> Task :tasks

Build tasks
-----------
assemble - Assembles the outputs of this project.

Build Setup tasks
-----------------
init - Initializes a new Gradle build.

Distribution tasks
------------------
assembleDist - Assembles the main distributions

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

您可以使用 --all 选项在任务列表中获取更多信息:

$ gradle tasks --all

--no-all 选项可以将报告限制为分配给任务组的任务。

如果您需要更精确,可以使用 --group 选项仅显示特定组中的任务:

$ gradle tasks --group="build setup"

显示任务使用详情

运行 gradle help --task someTask 会为您提供关于特定任务的详细信息:

$ gradle -q help --task libs
Detailed task information for libs

Paths
     :api:libs
     :webapp:libs

Type
     Task (org.gradle.api.Task)

Options
     --rerun     Causes the task to be re-run even if up-to-date.

Description
     Builds the JAR

Group
     build

这些信息包括完整的任务路径、任务类型、可能的特定于任务的命令行选项以及给定任务的描述。

您可以使用 --types 选项获取有关任务类类型的详细信息,或者使用 --no-types 隐藏此信息。

报告依赖项

构建扫描 (Build Scans) 提供了一个完整、可视化的报告,说明在哪些配置上存在哪些依赖项、传递性依赖项以及依赖项版本选择。可以使用 --scan 选项调用它们:

$ gradle myTask --scan

这将为您提供一个基于 Web 的报告链接,您可以在其中找到如下依赖项信息

Build Scan dependencies report

列出项目依赖项

运行 dependencies 任务会为您提供所选项目的依赖项列表,按配置划分。对于每个配置,该配置的直接依赖项和传递性依赖项会以树状结构显示。

以下是此报告的示例:

$ gradle dependencies
> Task :app:dependencies

------------------------------------------------------------
Project ':app'
------------------------------------------------------------

compileClasspath - Compile classpath for source set 'main'.
+--- project :model
|    \--- org.json:json:20220924
+--- com.google.inject:guice:5.1.0
|    +--- javax.inject:javax.inject:1
|    +--- aopalliance:aopalliance:1.0
|    \--- com.google.guava:guava:30.1-jre -> 28.2-jre
|         +--- com.google.guava:failureaccess:1.0.1
|         +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|         +--- com.google.code.findbugs:jsr305:3.0.2
|         +--- org.checkerframework:checker-qual:2.10.0 -> 3.28.0
|         +--- com.google.errorprone:error_prone_annotations:2.3.4
|         \--- com.google.j2objc:j2objc-annotations:1.3
+--- com.google.inject:guice:{strictly 5.1.0} -> 5.1.0 (c)
+--- org.json:json:{strictly 20220924} -> 20220924 (c)
+--- javax.inject:javax.inject:{strictly 1} -> 1 (c)
+--- aopalliance:aopalliance:{strictly 1.0} -> 1.0 (c)
+--- com.google.guava:guava:{strictly [28.0-jre, 28.5-jre]} -> 28.2-jre (c)
+--- com.google.guava:guava:{strictly 28.2-jre} -> 28.2-jre (c)
+--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c)
+--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c)
+--- com.google.code.findbugs:jsr305:{strictly 3.0.2} -> 3.0.2 (c)
+--- org.checkerframework:checker-qual:{strictly 3.28.0} -> 3.28.0 (c)
+--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c)
\--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c)

构建脚本和输出的具体示例可在查看和调试依赖项中找到。

运行 buildEnvironment 任务可视化显示所选项目的构建脚本依赖项,类似于 gradle dependencies 如何可视化显示正在构建的软件的依赖项:

$ gradle buildEnvironment

运行 dependencyInsight 任务会为您提供对匹配指定输入的特定依赖项(或多个依赖项)的洞察:

$ gradle dependencyInsight --dependency [...] --configuration [...]

--configuration 参数将报告限制在特定配置,例如 compileClasspath

列出项目属性

运行 properties 任务会为您提供所选项目的属性列表:

$ gradle -q api:properties
------------------------------------------------------------
Project ':api' - The shared API for the application
------------------------------------------------------------

allprojects: [project ':api']
ant: org.gradle.api.internal.project.DefaultAntBuilder@12345
antBuilderFactory: org.gradle.api.internal.project.DefaultAntBuilderFactory@12345
artifacts: org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler_Decorated@12345
asDynamicObject: DynamicObject for project ':api'
baseClassLoaderScope: org.gradle.api.internal.initialization.DefaultClassLoaderScope@12345

您还可以使用可选的 --property 参数查询单个属性:

$ gradle -q api:properties --property allprojects
------------------------------------------------------------
Project ':api' - The shared API for the application
------------------------------------------------------------

allprojects: [project ':api']

命令行补全

Gradle 通过gradle-completion(需单独安装)为任务、选项和 Gradle 属性提供 bashzsh 的 Tab 补全支持。

gradle completion 4.0

调试选项

-?, -h, --help

显示包含内置 CLI 选项的帮助消息。要显示特定于项目的选项(包括特定任务的帮助),请参阅 help 任务。

-v, --version

打印 Gradle、Groovy、Ant、Launcher 和 Daemon JVM 以及操作系统版本信息,然后退出而不执行任何任务。

-V, --show-version

打印 Gradle、Groovy、Ant、Launcher 和 Daemon JVM 以及操作系统版本信息,然后继续执行指定的任务。

-S, --full-stacktrace

打印出任何异常的完整(非常详细的)堆栈跟踪。另请参阅日志选项

-s, --stacktrace

也打印出用户异常(例如编译错误)的堆栈跟踪。另请参阅日志选项

--scan

创建一个构建扫描 (Build Scan),其中包含有关 Gradle 构建所有方面的详细信息。

-Dorg.gradle.debug=true

一个用于调试Gradle Daemon 进程的Gradle 属性。默认情况下,Gradle 会等待您在 localhost:5005 处附加调试器。

-Dorg.gradle.debug.host=(host address)

一个Gradle 属性,用于指定启用调试时要监听或连接的主机地址。在 Java 9 及更高版本的服务器模式下,为主机传入 * 将使服务器监听所有网络接口。默认情况下,没有主机地址传递给 JDWP,因此在 Java 9 及更高版本上使用环回地址,而早期版本监听所有接口。

-Dorg.gradle.debug.port=(port number)

一个Gradle 属性,用于指定启用调试时要监听的端口号。默认值为 5005

-Dorg.gradle.debug.server=(true,false)

一个Gradle 属性,如果设置为 true 且启用了调试,将使 Gradle 在调试器的 socket-attach 模式下运行构建。否则,使用 socket-listen 模式。默认值为 true

-Dorg.gradle.debug.suspend=(true,false)

一个Gradle 属性,如果设置为 true 且启用了调试,运行 Gradle 的 JVM 将暂停,直到附加调试器。默认值为 true

-Dorg.gradle.daemon.debug=true

一个用于调试Gradle Daemon 进程的Gradle 属性。(与 -Dorg.gradle.debug 重复)

性能选项

优化和提升构建性能时尝试这些选项。

其中许多选项可以在 gradle.properties 文件中指定,因此命令行标志不是必需的。

--build-cache, --no-build-cache

切换Gradle 构建缓存。Gradle 将尝试重用之前构建的输出。默认为关闭

--configuration-cache, --no-configuration-cache

切换配置缓存。Gradle 将尝试重用之前构建的配置。默认为关闭

--configuration-cache-problems=(fail,warn)

配置配置缓存如何处理问题。默认为 fail

设置为 warn 会报告问题但不会使构建失败。

设置为 fail 会报告问题,如果存在任何问题则使构建失败。

--configure-on-demand, --no-configure-on-demand

切换按需配置。在此次构建运行中仅配置相关的项目。默认为关闭

--max-workers

设置 Gradle 可以使用的最大工作进程数。默认为处理器数量

--parallel, --no-parallel

并行构建项目。有关此选项的限制,请参阅并行项目执行默认为关闭

--priority

指定 Gradle daemon 及其启动的所有进程的调度优先级。可选值为 normallow默认为 normal

--profile

layout.buildDirectory.dir("reports/profile") 目录中生成高级性能报告。建议使用 --scan

--scan

生成包含详细性能诊断信息的构建扫描。

Build Scan performance report
--watch-fs, --no-watch-fs

切换文件系统监视。启用后,Gradle 会在构建之间重用收集到的文件系统信息。在 Gradle 支持此功能的操作系统上默认启用。

Gradle Daemon 选项

您可以通过以下命令行选项管理Gradle Daemon

--daemon, --no-daemon

使用Gradle Daemon 运行构建。如果 daemon 未运行或现有 daemon 正忙,则启动 daemon。默认为开启

--foreground

在前台进程中启动 Gradle Daemon。

--status(独立命令)

运行 gradle --status 以列出正在运行和最近停止的 Gradle daemon。它仅显示相同 Gradle 版本的 daemon。

--stop(独立命令)

运行 gradle --stop 以停止所有相同版本的 Gradle Daemon。

-Dorg.gradle.daemon.idletimeout=(number of milliseconds)

一个Gradle 属性,用于设置 Gradle Daemon 在空闲此毫秒数后自行停止。默认为 10800000(3 小时)。

日志选项

设置日志级别

您可以使用以下选项自定义 Gradle 日志记录的详细程度,这些选项按从最不详细到最详细的顺序排列。

-Dorg.gradle.logging.level=(quiet,warn,lifecycle,info,debug)

一个Gradle 属性,用于设置日志级别。

-q, --quiet

仅记录错误。

-w, --warn

将日志级别设置为 warn。

-i, --info

将日志级别设置为 info。

-d, --debug

在 debug 模式下记录(包括正常堆栈跟踪)。

Lifecycle 是默认日志级别。

自定义日志格式

您可以通过以下方式指定控制台模式来控制富文本输出(颜色和字体变体)的使用:

-Dorg.gradle.console=(auto,plain,rich,verbose)

一个Gradle 属性,用于指定控制台模式。不同模式的描述紧随其后。

--console=(auto,plain,rich,verbose)

指定要生成的控制台输出类型。

设置为 plain 以仅生成纯文本。此选项禁用控制台输出中的所有颜色和其他富文本输出。当 Gradle 连接到终端时,这是默认设置。

设置为 auto(默认)以在构建过程连接到控制台时启用控制台输出中的颜色和其他富文本输出,或在未连接到控制台时仅生成纯文本。当 Gradle 连接到终端时,这是默认设置。

设置为 rich 以在控制台输出中启用颜色和其他富文本输出,无论构建过程是否连接到控制台。未连接到控制台时,构建输出将使用 ANSI 控制字符生成富文本输出。

设置为 verbose 以启用颜色和其他类似 rich 的富文本输出,并在 lifecycle 日志级别输出任务名称和结果(这在 Gradle 3.5 及更早版本中是默认行为)。

报告问题

--no-problems-report

禁用生成 build/reports/problems-report.html,默认情况下,此报告由提供给问题 API 的问题生成。

--problems-report

启用生成 build/reports/problems-report.html。这是默认行为。此报告包含提供给 Problems API 的问题。

显示或隐藏警告

默认情况下,Gradle 不会显示所有警告(例如弃用警告)。Gradle 会收集这些警告并在构建结束时渲染一个摘要,如下所示

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.

您可以使用以下选项控制控制台中警告的详细程度

-Dorg.gradle.warning.mode=(all,fail,none,summary)

一个 Gradle 属性,用于指定警告模式。不同模式的描述紧随其后。

--warning-mode=(all,fail,none,summary)

指定如何记录警告。默认为 summary

设置为 all 以记录所有警告。

设置为 fail 以记录所有警告并在存在任何警告时使构建失败。

设置为 summary 以抑制所有警告并在构建结束时记录摘要。

设置为 none 以抑制所有警告,包括构建结束时的摘要。

富文本控制台

Gradle 的富文本控制台在构建运行时显示额外信息。

Gradle Rich Console

特性

  • 进度条和计时器直观地描述总体状态

  • 下面的并行进行中行描述了当前正在发生的事情

  • 使用颜色和字体来突出显示重要输出和错误

执行选项

以下选项通过改变构建的内容或依赖项的解析方式来影响构建的执行方式。

--include-build

将指定构建作为 复合构建 运行。

--offline

指定构建应在 不访问网络资源 的情况下运行。

-U, --refresh-dependencies

刷新 依赖项的状态

--continue

在任务失败后 继续执行任务

-m, --dry-run

运行 Gradle,禁用所有任务动作。使用此选项来显示哪些任务本应执行。

-t, --continuous

启用 持续构建。Gradle 不会退出,并在任务文件输入更改时重新执行任务。

--write-locks

表明所有可锁定的已解析配置应持久化其 锁定状态

--update-locks <group:name>[,<group:name>]*

表明指定模块的版本必须在 锁定文件 中更新。

此标志也隐含 --write-locks

-a, --no-rebuild

不重建项目依赖项。对 调试和微调 buildSrc 非常有用,但可能导致错误结果。请谨慎使用!

依赖项验证选项

依赖项验证 中了解更多信息。

-F=(strict,lenient,off), --dependency-verification=(strict,lenient,off)

配置 依赖项验证模式

默认模式为 strict

-M, --write-verification-metadata

为项目中使用的依赖项生成校验和(逗号分隔列表),用于 依赖项验证

--refresh-keys

刷新用于依赖项验证的公钥。

--export-keys

导出用于依赖项验证的公钥。

环境选项

您可以通过以下选项 自定义 构建脚本、设置、缓存等许多方面。

-b, --build-file (已弃用)

指定构建文件。例如:gradle --build-file=foo.gradle。默认为 build.gradle,然后是 build.gradle.kts

-c, --settings-file (已弃用)

指定设置文件。例如:gradle --settings-file=somewhere/else/settings.gradle

-g, --gradle-user-home

指定 Gradle 用户主目录。默认为用户主目录下的 .gradle 目录。

-p, --project-dir

指定 Gradle 的启动目录。默认为当前目录。

--project-cache-dir

指定项目特定的缓存目录。默认值为根项目目录下的 .gradle

-D, --system-prop

设置 JVM 的 系统属性,例如 -Dmyprop=myvalue

-I, --init-script

指定 初始化脚本

-P, --project-prop

设置根项目的 项目属性,例如 -Pmyprop=myvalue

-Dorg.gradle.jvmargs

一个 Gradle 属性,用于设置 JVM 参数。

-Dorg.gradle.java.home

一个 Gradle 属性,用于设置 JDK 主目录。

任务选项

任务可以定义特定于任务的选项,这些选项与上面章节中描述的大多数全局选项(由 Gradle 本身解释,可在命令行中的任何位置出现,并可使用 --help 选项列出)不同。

任务选项

  1. 由任务本身消费和解释;

  2. 必须 在命令行中紧随任务之后指定;

  3. 可以使用 gradle help --task someTask 列出(参见 显示任务使用详情)。

要了解如何为自己的任务声明命令行选项,请参见 声明和使用命令行选项

内置任务选项

内置任务选项是适用于所有任务的任务选项。目前,存在以下内置任务选项

--rerun

即使任务是最新的,也会导致其重新运行。类似于 --rerun-tasks,但适用于特定任务。

引导新项目

创建新的 Gradle 构建

使用内置的 gradle init 任务创建新的 Gradle 构建,支持新建或现有项目。

$ gradle init

大多数情况下,会指定项目类型。可用类型包括 basic(默认)、java-libraryjava-application 等。详情请参见 init 插件文档

$ gradle init --type java-library

标准化和预置 Gradle

内置的 gradle wrapper 任务会生成一个脚本 gradlew,该脚本调用声明的 Gradle 版本,必要时会预先下载。

$ gradle wrapper --gradle-version=8.1

除了 --gradle-version 外,您还可以指定 --distribution-type=(bin|all)--gradle-distribution-url--gradle-distribution-sha256-sum
关于使用这些选项的完整详情,请参见 Gradle wrapper 部分

持续构建

持续构建允许您在文件输入更改时自动重新执行请求的任务。您可以使用 -t--continuous 命令行选项在此模式下执行构建。

持续构建 中了解更多信息。