Java项目的Gradle
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文件。