7.1 Java插件
正如我们所看到的,Gradle就像一个普通的构建工具一样,他可以构建你构建脚本中要执行的任何事情。但是,不在这个范围内的,他不会构建任何东西,出发你在你的脚本中添加代码去执行。
大部分的Java工程目前都跟最基本的是一样的:你需要编译Java源代码,运行一些测试单元,并且创建一个Jar文件包含产生的classes文件。这将会是个好主意如果我们不需要在每个工程中都为此而写代码。幸运的是,你确实不需要这么做。Gradle通过使用Java插件解决了这个问题。插件是Gradle的一个扩展,他通过某些方式配置你的工程,典型的如通过添加一些预先配置的任务来一起做一些有用的事情,Gradle里面有很多的插件,你也可以编写自己的插件并且分享给其他的人。其中一个插件叫做Javaplugin.这个插件为你的工程添加了一些任务来编译和测试java源码,并且打包为一个Jar文件。
Java插件是最基础的约定插件,这样以为着这个插件为一个工程在许多方面都定义了缺省值,例如Java源码的位置。如果在你的工程中你遵循构建这个构建公约,你通常不需要在你的构建脚本中做太多的事情来获取一个有用的构建。Gradle也允许你自己配置你的工程如果你不想跟随这些约定或者由于某些原因不能跟随这个约定。事实上,由于对Java工程的支持是以一个插件的形式支持的,如果你不喜欢的话,你甚至可以不使用这个插件来构建一个Java工程。
我们在前面通过许多实例已经深度覆盖了解了Java插件,依赖管理以及多工程构建将会在后面的章节中讲到,在这一章中,我们想给你一个初步的了解关于如果使用Java插件来构建一个Java工程。
7.2 一个基本的Java工程
让我们来看一个简单的实例。要使用Java插件,添加下面的代码到你的构建文件中:
Example 7.1. Using the Java plugin
build.gradle
apply plugin: 'java'
提示:这个实例的代码可以在samples/java/quickstart 中找到,在Gradle发布的-all中。
如果你要定义一个Java工程,这就是所有你需要做的。这将会在你的工程上面运用Java插件,它将会添加一系列的任务到你的工程中。
Gradle期望在你的src/main/java目录寻找产品代码,已经在src/test/java目录搜索你的测试代码。另外,任何在src/main/resources目录的文件都会以资源的形式打包到Jar文件,任何在src/test/resources目录的文件都会包含到测试用例的运行环境目录中。所有的输出文件都会输出到build文件夹下,Jar文件输出到build/libs目录
(有那些可用的任务:你可以通过使用gradle task命令来列出一个工程的所有任务,这也会列出Java插件添加到你工程中的所有任务)
7.2.1 构建工程
Java插件为你的工程添加了一小部分任务,但是,只有少量几个任务你需要使用来构建你的工程,使用最多的一个任务就是build任务,这个任务将会对你的工程做一次整体的编译。当你运行gradle build 的时候,Gradle将会编译并且测试你的代码,最好生成一个Jar文件包含你所有的classes和资源。
Example 7.2. Building a Java project
Output of gradle build
> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Total time: 1 secs
一些其他有用的任务:
clean:
删除编译目录,移除所有生成的文件
assemble
编译并打包你的代码,但是不运行测试用例。其他的插件添加了一些更多特性到这个任务,例如,如果你使用War插件,这个插件将还会为你的工程构建WAR文件
check
编译并且测试你的代码,其他的插件为这个任务添加了更多的测试。如果你使用checkstyle插件,这个任务将会运行Checkstyle来测试你的代码
正如我们所看到的,Gradle就像一个普通的构建工具一样,他可以构建你构建脚本中要执行的任何事情。但是,不在这个范围内的,他不会构建任何东西,出发你在你的脚本中添加代码去执行。
大部分的Java工程目前都跟最基本的是一样的:你需要编译Java源代码,运行一些测试单元,并且创建一个Jar文件包含产生的classes文件。这将会是个好主意如果我们不需要在每个工程中都为此而写代码。幸运的是,你确实不需要这么做。Gradle通过使用Java插件解决了这个问题。插件是Gradle的一个扩展,他通过某些方式配置你的工程,典型的如通过添加一些预先配置的任务来一起做一些有用的事情,Gradle里面有很多的插件,你也可以编写自己的插件并且分享给其他的人。其中一个插件叫做Javaplugin.这个插件为你的工程添加了一些任务来编译和测试java源码,并且打包为一个Jar文件。
Java插件是最基础的约定插件,这样以为着这个插件为一个工程在许多方面都定义了缺省值,例如Java源码的位置。如果在你的工程中你遵循构建这个构建公约,你通常不需要在你的构建脚本中做太多的事情来获取一个有用的构建。Gradle也允许你自己配置你的工程如果你不想跟随这些约定或者由于某些原因不能跟随这个约定。事实上,由于对Java工程的支持是以一个插件的形式支持的,如果你不喜欢的话,你甚至可以不使用这个插件来构建一个Java工程。
我们在前面通过许多实例已经深度覆盖了解了Java插件,依赖管理以及多工程构建将会在后面的章节中讲到,在这一章中,我们想给你一个初步的了解关于如果使用Java插件来构建一个Java工程。
7.2 一个基本的Java工程
让我们来看一个简单的实例。要使用Java插件,添加下面的代码到你的构建文件中:
Example 7.1. Using the Java plugin
build.gradle
apply plugin: 'java'
提示:这个实例的代码可以在samples/java/quickstart 中找到,在Gradle发布的-all中。
如果你要定义一个Java工程,这就是所有你需要做的。这将会在你的工程上面运用Java插件,它将会添加一系列的任务到你的工程中。
Gradle期望在你的src/main/java目录寻找产品代码,已经在src/test/java目录搜索你的测试代码。另外,任何在src/main/resources目录的文件都会以资源的形式打包到Jar文件,任何在src/test/resources目录的文件都会包含到测试用例的运行环境目录中。所有的输出文件都会输出到build文件夹下,Jar文件输出到build/libs目录
(有那些可用的任务:你可以通过使用gradle task命令来列出一个工程的所有任务,这也会列出Java插件添加到你工程中的所有任务)
7.2.1 构建工程
Java插件为你的工程添加了一小部分任务,但是,只有少量几个任务你需要使用来构建你的工程,使用最多的一个任务就是build任务,这个任务将会对你的工程做一次整体的编译。当你运行gradle build 的时候,Gradle将会编译并且测试你的代码,最好生成一个Jar文件包含你所有的classes和资源。
Example 7.2. Building a Java project
Output of gradle build
> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Total time: 1 secs
一些其他有用的任务:
clean:
删除编译目录,移除所有生成的文件
assemble
编译并打包你的代码,但是不运行测试用例。其他的插件添加了一些更多特性到这个任务,例如,如果你使用War插件,这个插件将还会为你的工程构建WAR文件
check
编译并且测试你的代码,其他的插件为这个任务添加了更多的测试。如果你使用checkstyle插件,这个任务将会运行Checkstyle来测试你的代码