本章介绍如何使用Gradle构建文件来构建一个Java项目。 首先,我们必须向构建脚本中添加Java插件,因为它提供了编译Java源代码,运行单元测试,创建Javadoc和创建JAR文件的任务。 在build.gradle
文件中使用以下代码行。
apply plugin: 'java'
怎么样,是不是很简单?
Java默认的项目布局
每当添加一个插件到构建中,它会假设一个特定的Java项目设置(类似于Maven)。看看下面的目录结构。
src/main/java
目录包含Java源代码;src/test/java
目录包含测试用的源代码;
如果遵循上面设置,以下构建文件足以编译,测试并捆绑Java项目。
要启动构建,请在命令行上键入以下命令。
D:/worksp/gradle> 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
文件。
当使用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'
}
在仓库(repositories
)这部分中,它定义了要从哪里找到依赖。Jcenter是为了解决依赖问题。 依赖关系(dependencies
)部分用于提供有关外部依赖关系的信息。
指定Java版本
通常,Java项目要有一个版本和一个目标JRE,在其上编译它。version
和sourceCompatibility
属性可以在build.gradle
文件中设置。
version = 0.1.1
sourceCompatibility = 1.8
如果这是一个可执行的Java应用程序,MANIFEST.MF
文件必须要指定具有main方
法的类。
apply plugin: 'java'
jar {
manifest {
attributes 'Main-Class': 'com.yiibai.main.Application'
}
}
让我们考虑一个例子。创建一个目录结构,如下面的屏幕截图所示。
将以下Java代码复制到App.java
文件中,并将其存储到 D:/worksp/gradle/src/main/java/com/yiibai
目录中。
package com.yiibai;
/**
* Hello world!
*
*/
public class App {
public static void main( String[] args ){
System.out.println( "Hello World, Gradle Build Work! " );
}
}
将以下Java代码复制到AppTset.java
文件中,并存储到D:/worksp/gradle/src/test/java/com/yiibai
目录中。
package com.yiibai;
/**
* Hello world!
*
*/
public class App{
public static void main( String[] args ){
System.out.println( "Hello World!" );
}
}
将以下代码复制到build.gradle
文件中,并放入 D:/worksp/gradle
目录。
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.yiibai.main.App'
}
}
要编译和执行上述脚本,请使用以下命令。
D:/worksp/gradle> gradle tasks
....
D:/worksp/gradle> gradle assemble
....
D:/worksp/gradle> gradle build
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Total time: 1.638 secs
查看相应目录中的所有类文件,并检查 D:/worksp/gradle/build/libs
文件夹中,应该会有一个 gradle.jar
文件。