Gradle 教程

Gradle 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/gradle-build-a-java-project.html

Gradle构建JAVA项目


本章介绍如何使用 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.gradlesettings.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,在其上编译它。versionsourceCompatibility属性可以在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文件。