Menu Close

在IDEA中使用 Gradle 构建 Java 项目(例三)

环境描述

描述项 内容
操作系统 CentOS Linux release 7.8.2003 (Core)
java版本 java version "1.8.0_161"
IDEA版本 2022.2.2
Gradle版本 7.5
下接文章 在IDEA中使用 Gradle 构建 Java Spring Boot项目(例五)

1. 使用 IDEA 创建一个空项目

file

2. 在IDEA的 Terminal 窗口来创建项目

2.1. 创建一个目录

mkdir questionService

2.2. 进入目录

cd questionService

file

2.3. 创建 settings.gradle.kts

touch settings.gradle.kts

2.3. 运行 gradle wrapper

gradle wrapper 会帮我们把 gradle 再包一层,使用 gradlew 命令去替代 gradle 命令,这样的话在我们需要更新 Gradle 版本的时候只需要去更新 wrapper 的配置文件就可以了,很方便在不同的版本里面随意切换,并且因为 wrapper 被提交到代码仓库以后,其他的协同开发者拉取了该 wrapper 文件,可以保证不同的人在本地构建使用的 Gradle 版本都是一致的,不会根据不同人的机器上的版本不一致导致一些奇怪的BUG。

gradle wrapper

file

2.4. 查看目录结构

.
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle.kts

2 directories, 5 files

3. 在IDEA创建来自 questionService 的模块

file

file

file

file

4. 完善项目内容

4.1. 修改 settings.gradle.kts

  • Kotlin语法
rootProject.name = "questionService"

4.2. 创建构建配置文件 build.gradle.kts(使用kotlin语言)

touch build.gradle.kts

或者:

file

file

4.3. 在 build.gradle.kts 文件中引入 java 插件

plugins {
  java
}

file

编辑完成后,需要点击 Gradle 图标进行刷新。

另外可以利用 java 插件来指定 jdk 版本,内容如下:

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(8))
    }
}

4.4. 创建Java代码目录

file

file

4.5. 创建Java代码包

file

file

4.6. 创建程序入口类

file

file

4.7. 编写类的内容

package xin.qishuo.question;

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

编写完成后可运行并查看输出。

5. 引入测试

测试驱动开发,英文全称 Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

file

5.1. 引入测试库

Java 单元测试框架 JUnit,它与另一个框架 TestNG 占据了 Java 领域里单元测试框架的主要市场,其中 JUnit 有着较长的发展历史和不断演进的丰富功能,备受大多数 Java 开发者的青睐。

file

Junit5的特性如下:

  • 提供全新的断言和测试注解,支持测试类内嵌
  • 更丰富的测试方式:支持动态测试,重复测试,参数化测试等
  • 实现了模块化,让测试执行和测试发现等不同模块解耦,减少依赖
  • 提供对 Java 8 的支持,如 Lambda 表达式,Sream API等。

1)编辑 build.gradle.kts 文件

  • 第一步:配置仓库地址

    repositories {
    mavenCentral()
    }
  • 第二步:配置JUnit的依赖类库

    dependencies {
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.1")
    testImplementation("org.junit.jupiter:junit-jupiter-engine:5.9.1")
    }

刷新Gradle后,可以看到 External Libraries 中已经有了上述导入的类库。

file

5.2. 创建测试用例

1)创建包

file

file

2)创建测试类
file

file

3)编写测试代码

package xin.qishuo.question;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class SmokeTest {
    @Test
    void onePlusOneEqualTwo() {
        assertEquals(2, 1 + 1);
    }
}

该段代码主要是验证 jupiter 是不是 workable 的。

4)编译运行时报如下错误

file

原因是没有告诉 Gradle Tasks 测试任务是去使用JUnit Platform。

5)在 build.gradle.kts 中添加测试 task

tasks {
    test {
        useJUnitPlatform()
    }
}

6)再次执行测试

file

附录

附录A. 相关联的文章