gradle java 应用程序——迹忆客-ag捕鱼王app官网
我们可以使用 gradle 的 build init
插件来创建一个跟踪 gradle 约定的新 java 应用程序。 构建插件提供了一个名为 init 的任务,用于生成项目。 该插件还使用包装器任务来创建 gradle 包装器脚本 (gradlew)。
第一步是为新项目创建一个目录并进入该目录
$ mkdir java_application
$ cd java_application
然后运行 init
命令创建一个新的 gradle 项目:
$ gradle init
选择要生成的项目类型。 有四个可用的命令行选项,如下所示:
- basic
- application
- library
- gradle plugin
输入 2 并按回车键创建应用程序。 默认选择是 basic 的。
接下来选择实现语言。 有五个选项可用,如下所示:
- c
- groovy
- java
- kotlin
- swift
我们选择 3 java。默认选择也是 java。
下一步是为项目选择默认的构建脚本语言。 有两个选项可用,如下所示:
- groovy
- kotlin
我们选择 1 groovy。默认选择也是 groovy。
选择测试框架。 测试框架有四个选项可用。 如下:
- junit 4
- testng
- spock
- junit jupiter
选择适合自己的测试框架,默认选择是 junit 4。
输入项目名称; 默认情况下,它将目录名称作为项目名称。
输入源码包; 默认情况下,它将目录名称作为源包。
现在 init 任务已成功执行,我们已经使用 gradle init api 创建了一个 java 应用程序。
init 任务本身包含 wrapper 任务,因此首先它会执行在我们的仓库中生成 gradlew 和 gradlew.bat 文件(wrapper 脚本)的 wrapper 任务。 它创建一个具有以下结构的 gradle 项目:
上述结构描述:
- 包含包装文件的生成包装包。
- 默认 java 源文件夹
- 默认 java 测试文件夹
生成的文件
让我们看一下项目的生成文件。
- settings.gradle
它有大量的注释并且有一个用来设置根项目的名称的代码行。
rootproject.name = 'java_application'
它将使用在可用目录之后命名项目的默认行为。 看起来像下面这样
- 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
构建任务编译类、运行测试并创建测试报告。
注意
:我们第一次运行 gradlew 命令时,可能需要一些时间,而指定版本的 gradle 是下载并存储在本地的。
gradle 包装器脚本检查我们是否指定了 guava 和 junit 库,如果没有,它将下载并存储在 /.gradle
目录中。
运行 java 应用程序
gradle 构建使用应用程序插件,因此我们可以从命令行运行应用程序。 gradlew run
命令将用于从命令行运行应用程序。
首先,使用 task
命令显示插件添加的任务:
$ gradlew tasks
上面的命令将列出项目中可用的任务。输出如下所示:
现在,使用 run
命令运行应用程序。 它将传达 gradle 以执行分配给 mainclassname 属性的类中的 main
方法。
$ gradlew run
运行结果如下