Java项目的Gradle

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

Gradle带有一个" Java插件",提供了构建Java项目时通常使用的一组任务。使用Gradle Java插件可以在编写Gradle构建脚本时节省大量时间,因为我们不必自己编写所有必需的任务。 Gradle Java插件为我们提供了它们。在本文中,我们将详细介绍此Gradle Java插件。

添加Java插件

在使用Gradle Java插件中的任务之前,必须首先将Java插件添加到Gradle构建脚本中。通过在构建脚本顶部添加以下行,将Gradle Java插件添加到Gradle构建脚本中:

apply plugin: 'java'

列出Java构建任务

将Gradle Java插件添加到构建脚本后,我们可以使用以下命令列出Java插件添加的构建任务:

gradle tasks

我们应该看到更长的任务列表,与下面的列表类似,但是每个任务旁边都有说明(我删除了说明以使输出宽度适合页面):

D:\data\projects\gradle-experiments>gradle tasks
:tasks

------------------
All tasks runnable
------------------

Build tasks
----------
assemble
build
buildDependents
buildNeeded
classes
clean
jar
testClasses

Build Setup tasks
----------------
init
wrapper

Documentation tasks
------------------
javadoc

Help tasks
---------
components
dependencies
dependencyInsight
helph
model
projects
properties
tasks

Verification tasks
-----------------
check
test

Other tasks
----------
count
intro
myTask
secondTask
upper

Rules
----
Pattern: clean
Pattern: build
Pattern: upload

To see all tasks and...

To see more detail...

BUILD SUCCESSFUL

Total time: 11.33 s
D:\data\projects\gradle-experiments>

建立Java专案

要构建Java项目,我们可以编写:

gradle build

这将执行" build"任务。 " build"任务取决于许多其他任务,这些任务将在" build"任务之前执行。这是执行build任务的示例输出:

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

BUILD SUCCESSFUL

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

build任务将编译所有Java类,并其中创建一个JAR文件。Gradle将类和JAR文件输出到项目根目录内名为build的目录中。如果build目录不存在,Gradle将创建它。编译后的类将被写入" build / classes",JAR文件将被写入" build / libs"。

Gradle会记住已执行的任务,并且如果任务所需的文件没有更改,Gradle将不会再次执行该任务。这就是为什么我们在许多任务旁边看到注释" UP-TO-DATE"的原因。

跳过已经执行的任务(这些任务的输出仍然有效)可以使构建运行得更快。如果再次运行相同的" gradle build"命令,输出将如下所示:

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

BUILD SUCCESSFUL

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

请注意,输出末尾列出的构建时间短了将近3秒。这是因为从上一次运行以来,"类","罐子"和"汇编"任务现在全部为"最新"。 3秒可能感觉并不多,但是随着要编译的代码量的增长,节省的费用也越来越大。

清理构建输出

有时我们可能想从头开始重建Java项目。为此,我们必须首先删除所有以前的生成输出。我们可以使用" clean"任务来执行此操作,如下所示:

gradle clean

运行clean命令会删除build目录,从而删除所有编译的类和创建的JAR文件。