Gradle - 构建 JAVA 项目
本章介绍如何使用 Gradle 构建文件构建 java 项目。
首先,我们必须将java插件添加到构建脚本中,因为它提供了编译Java源代码、运行单元测试、创建Javadoc和创建JAR文件的任务。
在build.gradle文件中使用以下行。
apply plugin: 'java'
Java 默认项目布局
每当您将插件添加到构建中时,它都会假定您的 Java 项目进行了某种设置(类似于 Maven)。看看下面的目录结构。
- src/main/java 包含 Java 源代码。
- src/test/java 包含 Java 测试。
如果您遵循此设置,则以下构建文件足以编译、测试和捆绑 Java 项目。
要开始构建,请在命令行中键入以下命令。
C:\> gradle build
SourceSets可用于指定不同的项目结构。例如,源存储在src文件夹中而不是src/main/java中。看看下面的目录结构。
apply plugin: 'java' sourceSets { main { java { srcDir 'src' } } test { java { srcDir 'test' } } }
初始化任务执行
Gradle 尚不支持多个项目模板。但它提供了一个初始化任务来创建新 Gradle 项目的结构。如果没有其他参数,此任务将创建一个 Gradle 项目,其中包含 gradle 包装文件、build.gradle和settings.gradle文件。
当添加带有java-library作为值的--type参数时,会创建一个 java 项目结构,并且build.gradle文件包含带有 Junit 的特定 Java 模板。看一下build.gradle文件的以下代码。
apply plugin: 'java' repositories { jcenter() } dependencies { compile 'org.slf4j:slf4j-api:1.7.12' testCompile 'junit:junit:4.12' }
在存储库部分,它定义了在哪里可以找到依赖项。Jcenter是为了解决你的依赖关系。依赖关系部分用于提供有关外部依赖关系的信息。
指定Java版本
通常,Java 项目有一个版本和一个编译该项目的目标 JRE。版本和sourceCompatibility属性可以在build.gradle文件中设置。
version = 0.1.0 sourceCompatibility = 1.8
如果工件是可执行 Java 应用程序,则MANIFEST.MF文件必须知道具有 main 方法的类。
apply plugin: 'java' jar { manifest { attributes 'Main-Class': 'com.example.main.Application' } }
例子
创建一个目录结构,如下面的屏幕截图所示。
将下面给出的java代码复制到App.java文件中并存储到consumerbanking\src\main\java\com\bank目录中。
package com.bank; /** * Hello world! * */ public class App { public static void main( String[] args ){ System.out.println( "Hello World!" ); } }
将下面给出的java代码复制到AppTset.java文件中并存储到consumerbanking\src\test\java\com\bank目录中。
package com.bank; /** * Hello world! * */ public class App{ public static void main( String[] args ){ System.out.println( "Hello World!" ); } }
将下面给出的代码复制到 build.gradle 文件中并放入Consumerbanking\目录中。
apply plugin: 'java' repositories { jcenter() } dependencies { compile 'org.slf4j:slf4j-api:1.7.12' testCompile 'junit:junit:4.12' } jar { manifest { attributes 'Main-Class': 'com.example.main.Application' } }
要编译并执行上述脚本,请使用以下给出的命令。
consumerbanking\> gradle tasks consumerbanking\> gradle assemble consumerbanking\> gradle build
检查相应目录中的所有类文件,并检查consumerbanking\build\lib文件夹中的consumerbanking.jar文件。