教程 > gradle > 阅读:67

gradle java 应用程序——迹忆客-ag捕鱼王app官网

我们可以使用 gradle 的 build init 插件来创建一个跟踪 gradle 约定的新 java 应用程序。 构建插件提供了一个名为 init 的任务,用于生成项目。 该插件还使用包装器任务来创建 gradle 包装器脚本 (gradlew)。

第一步是为新项目创建一个目录并进入该目录

$ mkdir java_application  
$ cd java_application

然后运行 init 命令创建一个新的 gradle 项目:

$ gradle init

选择要生成的项目类型。 有四个可用的命令行选项,如下所示:

  1. basic
  2. application
  3. library
  4. gradle plugin

输入 2 并按回车键创建应用程序。 默认选择是 basic 的。

接下来选择实现语言。 有五个选项可用,如下所示:

  1. c
  2. groovy
  3. java
  4. kotlin
  5. swift

我们选择 3 java。默认选择也是 java。

下一步是为项目选择默认的构建脚本语言。 有两个选项可用,如下所示:

  1. groovy
  2. kotlin

我们选择 1 groovy。默认选择也是 groovy。

选择测试框架。 测试框架有四个选项可用。 如下:

  1. junit 4
  2. testng
  3. spock
  4. junit jupiter

选择适合自己的测试框架,默认选择是 junit 4

输入项目名称; 默认情况下,它将目录名称作为项目名称。

输入源码包; 默认情况下,它将目录名称作为源包。

现在 init 任务已成功执行,我们已经使用 gradle init api 创建了一个 java 应用程序。

gradle java 应用程序创建

init 任务本身包含 wrapper 任务,因此首先它会执行在我们的仓库中生成 gradlewgradlew.bat 文件(wrapper 脚本)的 wrapper 任务。 它创建一个具有以下结构的 gradle 项目:

gradle java 应用程序目录结构

上述结构描述:

  1. 包含包装文件的生成包装包。
  2. 默认 java 源文件夹
  3. 默认 java 测试文件夹

生成的文件

让我们看一下项目的生成文件。

  • settings.gradle

它有大量的注释并且有一个用来设置根项目的名称的代码行。

rootproject.name = 'java_application'  

它将使用在可用目录之后命名项目的默认行为。 看起来像下面这样

gradle java 应用程序gradlew初始内容

  • app/build.gradle

它是 gradle 项目的构建脚本。 生成的 build.gradle 文件有很多组件。 此构建脚本中介绍了使用的依赖项及其版本。 生成的构建文件内容如下:

plugins {
    // apply the application plugin to add support for building a cli application in java.
    id 'application'
}
repositories {
    // use maven central for resolving dependencies.
    mavencentral()
}
dependencies {
    // use junit test framework.
    testimplementation 'junit:junit:4.13.2'
    // this dependency is used by the application.
    implementation 'com.google.guava:guava:31.0.1-jre'
}
application {
    // define the main class for the application.
    mainclass = 'java_application.app'
}

gradle 构建脚本添加了 java 和应用程序插件。 当我们运行一个 gradle 命令时,它会在 gradle 的构建脚本中进行搜索。

  • app.java

gradle 支持 java 项目并包含一个具有 main 方法的类,可以从命令行执行。 在 java_application 中,主类的名称是 app

文件 app.java 位于目录 app/src/main/java/java_application/ 中。 app.java 生成的代码如下:

package java_application;
public class app {
    public string getgreeting() {
        return "hello world!";
    }
    public static void main(string[] args) {
        system.out.println(new app().getgreeting());
    }
}

上面的 java 源文件是由 init 任务生成的。

  • apptest.java

它是java项目的测试类。 测试类在目录 app/src/test/java/java_application/ 中。 apptest.java 生成的代码如下:

package java_application;
import org.junit.test;
import static org.junit.assert.*;
public class apptest {
    @test public void apphasagreeting() {
        app classundertest = new app();
        assertnotnull("app should have a greeting", classundertest.getgreeting());
    }
}

init 任务生成给定的 java 测试文件。 生成的测试文件包含一个使用 junit@test 注解的测试。 此测试实例化 app 类,调用 getgreeting(),并检查返回值是否不为空。


构建的执行

要执行 gradle 构建,请与 gradlew 命令一起运行构建任务。 但是,我们可以运行 gradle 任务,但最好包含包装脚本。

$ gradlew build  

gradle java 应用程序构建

构建任务编译类、运行测试并创建测试报告。

注意 :我们第一次运行 gradlew 命令时,可能需要一些时间,而指定版本的 gradle 是下载并存储在本地的。

gradle 包装器脚本检查我们是否指定了 guava 和 junit 库,如果没有,它将下载并存储在 /.gradle 目录中。


运行 java 应用程序

gradle 构建使用应用程序插件,因此我们可以从命令行运行应用程序。 gradlew run 命令将用于从命令行运行应用程序。

首先,使用 task 命令显示插件添加的任务:

$ gradlew tasks  

上面的命令将列出项目中可用的任务。输出如下所示:

gradle java 应用程序运行

现在,使用 run 命令运行应用程序。 它将传达 gradle 以执行分配给 mainclassname 属性的类中的 main 方法。

$ gradlew run  

运行结果如下

gradle java 应用程序运行结果

查看笔记

扫码一下
查看教程更方便
网站地图