📜  Gradle-构建Java项目

📅  最后修改于: 2020-10-16 02:43:36             🧑  作者: Mango


本章介绍如何使用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

SourceSet可用于指定其他项目结构。例如,源存储在src文件夹中,而不是src / main / java中。看一下以下目录结构。

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

初始化任务执行

Gradle尚不支持多个项目模板。但是它提供了一个初始化任务来创建新的Gradle项目的结构。如果没有其他参数,此任务将创建一个Gradle项目,其中包含gradle包装器文件, build.gradlesettings.gradle文件。

当添加带有Java库作为值的–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。可以在build.gradle文件中设置versionsourceCompatibility属性。

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文件。