运行gradle

时间:2020-01-09 10:47:13  来源:igfitidea点击:

要从命令行运行Gradle,我们必须首先正确安装Gradle。正确安装后,我们可以使用以下命令行运行Gradle:

gradle

" gradle"命令将在与命令提示符所在目录相同的gradle构建脚本上运行Gradle。这意味着,要在特定gradle构建脚本上运行gradle,必须将命令提示符下的目录更改为目录构建脚本所在的位置。

运行任务

Gradle构建脚本通常包含一个或者多个可以执行的任务。通过在命令行的gradle命令后列出任务名称,可以在构建脚本中执行任务。这是运行Gradle任务的方法:

gradle compileCode

该命令在与执行命令相同的目录中的构建脚本中运行名为" compileCode"的任务。

运行多个任务

通过提供要运行的所有任务的名称,Gradle可以使用一个命令运行多个任务。要运行的任务的名称应以空格分隔。这是一个运行多个任务的Gradle命令的示例:

gradle clean build

这个命令行将使Gradle首先执行名为clean的任务,然后执行build任务。 Gradle还将执行命名任务所依赖的任务(如果有)。

每个任务只会执行一次,无论它是作为列出的任务的一部分还是列出的任务所依赖的任务被发现的次数。因此,此命令将只执行一次"清理"任务:

gradle clean clean

任务名称缩写

我们实际上不必编写任务的完整任务名称即可执行它。 Gradle只需要足够的任务名称即可将其与Gradle构建脚本中的其他任务唯一区分开。例如,我们可以使用以下命令运行" build"任务:

gradle b

如果没有其他任务以字母" b"开头,则" b"足以在Gradle构建脚本中唯一标识任务" build"。如果其他任务也以" b"开头,则可能必须提供更多的任务名称。这些Gradle命令示例显示了外观:

gradle bu
gradle bui
gradle buil

排除任务

我们可以使用-x标志将任务排除在执行之外。排除任务在排除另一个任务依赖的任务时最有用,通常是通过排除我们不需要执行的任务来加快构建过程。

例如,来自Gradle Java插件的" build"任务取决于任务" test"和" testClasses"。也许我们刚刚执行了测试,并且知道它们成功了。因此,我们不想再次运行" test"和" testClasses"任务,而只构建项目。我们可以使用以下Gradle命令执行此操作:

gradle build -x test

这将从执行中排除"测试"任务。由于"测试"任务取决于"测试类"任务,并且现在排除了"测试"任务,因此也隐式排除了"测试类"。

静音模式

我们可以在"安静模式"下运行gradle,这意味着Gradle命令会在执行时省去通常会打印到命令行的许多状态消息。要在安静模式下运行Gradle,请将命令行开关-q添加到命令行。这是显示如何在安静模式下运行Gradle的示例:

gradle -q

或者,如果我们想运行特定的任务,请执行以下操作:

gradle -q compileCode

列出构建脚本中的任务

我们可以通过将命令行参数tasks传递给gradle命令来列出构建脚本中的所有任务,如下所示:

gradle tasks

这将列出在运行此命令的目录中的构建脚本中找到的所有任务。

如果使用--all标志,我们将获得有关每个任务的更多信息。这是一个命令行示例:

gradle tasks --all

指定构建脚本

默认情况下,Gradle执行与执行gradle命令相同的目录中的构建脚本。但是,可以选择构建另一个构建脚本。

我们可以使用-b命令行标志来指定另一个构建脚本。这是一个例子:

gradle -b subproject-dir/build.gradle build

这个示例Gradle命令构建位于subproject-dir目录中的构建脚本,并运行该构建脚本的build任务。

当我们指定另一个构建脚本时,Gradle不会使用其settings.gradle文件。

指定项目

除了指定不同于默认位置的构建脚本以外,还可以指定另一个要构建的项目。项目由项目所在的目录标识。

我们可以通过使用-p标志以及项目目录来运行另一个项目的构建脚本。这是指定要构建的项目的示例:

gradle -p subproject-dir build

本示例将构建在目录" subproject-dir"中找到的项目。 Gradle将使用在项目目录(" subproject-dir")中找到的" build.gradle"文件,并在该构建脚本中执行" build"任务。

列出子项目

Gradle可以列出项目的所有子项目(在该项目的Gradle构建脚本中指定)。我们可以使用projects任务来完成。看起来是这样的:

gradle projects

摇篮帮助

我们可以通过将-h标志传递给gradle命令来获得gradle命令选项的列表,如下所示:

gradle -h

构建失败

如果构建脚本中的任务在执行过程中失败,Gradle将中止整个构建。这样做是为了节省时间。通常,如果较早的任务失败,则执行构建脚本中的较后任务毫无意义。

即使任务失败,我们也可以指示Gradle继续构建。这是通过使用--continue标志来完成的,如下所示:

gradle build --continue

Gradle将继续执行所有成功执行其依赖的任务的任务。因此,如果任务B依赖于任务A且A失败,那么即使我们指示Gradle继续执行构建,尽管发生错误,Gradle实际上也不会执行B。

Dry Run

"空运行"是Gradle并未实际执行我们告诉其执行的所有任务的运行。相反,如果我们正常运行Gradle,Gradle会打印出有关将执行哪些任务的信息。

我们可以使用-m标志通知Gradle进行空转。这是Gradle空运行命令示例:

gradle -m build

空运行的输出看起来类似于以下内容:

D:\data\projects\gradle-experiments>gradle -m build
:compileJava SKIPPED
:processResources SKIPPED
:classes SKIPPED
:jar SKIPPED
:assemble SKIPPED
:compileTestJava SKIPPED
:processTestResources SKIPPED
:testClasses SKIPPED
:test SKIPPED
:check SKIPPED
:build SKIPPED

BUILD SUCCESSFUL

Total time: 14.869 secs
D:\data\projects\gradle-experiments>