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 尚不支持多个项目模板。 但它提供了一个 init 任务来创建新 Gradle 项目的结构。 在没有其他参数的情况下,此任务会创建一个 Gradle 项目,其中包含 gradle 包装文件、build.gradle 和 settings.gradle 文件。
将 --type 参数添加为 java-library 作为值时,将创建一个 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 用于解决您的依赖关系。 Dependencies 部分用于提供有关外部依赖项的信息。
指定 Java 版本
通常,Java 项目具有编译它的版本和目标 JRE。 version 和 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 文件。