Gradle构建Java项目

1. 添加Java插件

使用Gradle构建文件来构建一个Java项目。首先,我们必须向构建脚本中添加Java插件,因为它提供了编译Java源代码,运行单元测试,创建Javadoc和创建JAR文件的任务。 在build.gradle文件中使用以下代码行。

apply plugin: 'java'

2. Java默认的项目布局

每当添加一个插件到构建中,它会假设一个特定的Java项目设置(类似于Maven)。
- src/main/java 目录包含Java源代码;
- src/test/java 目录包含测试用的源代码;

SourceSets可用于指定不同的项目结构。例如,指定源代码存储在src文件夹中,而不是在src/main/java中。如:

apply plugin: 'java'
sourceSets {
   main {
      java {
         srcDir 'src'
      }
   }

   test {
      java {
         srcDir 'test'
      }
   }
}

3. 启动构建

  在命令行键入以下命令启动构建:

$ gradle build

4. 指定Java版本

通常,Java项目要有一个版本和一个目标JRE,在其上编译它。versionsourceCompatibility 属性可以在 build.gradle 文件中设置。

version = 0.1.1
sourceCompatibility = 1.8

如果这是一个可执行的Java应用程序,MANIFEST.MF 文件必须要指定具有 main 方法的类。

apply plugin: 'java'

jar {
    manifest{
        attributes 'Main-Class': net.mrliuli.main.App'
    }
}

5. 一个可执行Jar项目示例

5.1

E:\gradleStudy\src\main\java\net\mrliuli 目录中:

package net.mrliuli;

/**
* Hello world!
*
*/

public class App {
   public static void main( String[] args ){
      System.out.println( "Hello World, Gradle Build Work! " );
   }
}

E:\gradleStudy\src\test\java\net\mrliuli 目录中:

package net.mrliuli;

/**
* Hello world!
*
*/

public class AppTest{
   public static void main( String[] args ){
      System.out.println( "Hello World!" );
   }
}

5.2

E:\gradleStudy 目录中文件 build.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': 'net.mrliuli.App'
   }
}

5.3 启动构建

  在命令行终端执行:

# /e/gradleStudy
$ gradle build
:compileJava
:processResources NO-SOURCE
:classes
:jar
:assemble
:compileTestJava
:processTestResources NO-SOURCE
:testClasses
:test
:check
:build

BUILD SUCCESSFUL in 2s
4 actionable tasks: 4 executed

5.4 输出build

  构建成功会生成一个E:\gradleStudy\build\libs\gradleStudy.jar文件,在E:\gradleStudy\build\libs\下执行

$ java -jar gradleStudy.jar
Hello World, Gradle Build Work!

猜你喜欢

转载自blog.csdn.net/leonliu06/article/details/79006356