使用 Gradle 构建 SpringBoot 项目
本章中包含了 Gradle工程的创建
、依赖SpringBoot
、生成IDE工程文件
、调试模式
、自动化测试
五个部分。本文 Github 代码
一、创建 Gradle 工程
- 通过 Spring Initializr 网站创建一个 SpringBoot 工程,或者通过 IDE 来创建 SpringBoot 项目。
- 根目录下存在
build.gradle
文件,即证明项目创建成功 - 使用 Gradle Wrapper,能够不安装 Gradle 也能运行 gradle。(如果你是使用 IDEA 创建的项目,应该会默认使用 Gradle Wrapper)
二、添加 SpringBoot 依赖
1. 在 build.gradle
中配置 SpringBoot 插件:
buildscript {
ext {
// 指定 SpringBoot 的版本
springBootVersion = '2.0.5.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
// SpringBoot的默认版本
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
// SpringBoot依赖
implementation('org.springframework.boot:spring-boot-starter')
// Web依赖
compile("org.springframework.boot:spring-boot-starter-web")
// 测试依赖
testImplementation('org.springframework.boot:spring-boot-starter-test')
}
2. 创建启动文件 Run.java
该类是 SpringBoot 程序的入口。
@SpringBootApplication
public class Run{
public static void main(String[] args){
SpringApplication.run(Application.java);
}
}
3. 创建 Controller 接口
@RestController
public class HelloController {
@GetMapping("/")
public String hello(){
return "Hello [Spring Boot + Docker] World! ";
}
}
4. 启动测试
./gradlew bootRun
使用浏览器或者 Postman 打开 localhost:8080
,即可看到 Hello World页面
了。
三、生成 IDE 工程文件
我们可以通过 Gradle 的 IDE插件
一键式的生成 IDE 工程文件,然后在 IDE 中直接打开这样的工程文件。这样,所有人都能够使用相同的 IDE 配置。
在 build.gradle
中配置:
apply plugin: 'idea'
apply plugin: 'eclipse'
然后执行:
./gradlew idea
./gradlew eclipse
此时会分别生成后缀为 ipr 的 IDEA 工程文件
,和 .project工程文件
,分别对应着 IDEA 工程和 Eclipse 工程。
请注意,所有IDE工程文件都不应该提交到代码库,对于Git来说应该将这些文件注册到.gitignore文件中。各个开发者拿到代码后需要各自运行./graldlw idea或./gradlew eclipse命令以生成本地工程文件。
四、调试模式
第一种方式,直接运行命令:
./gradlew bootRun --debug-jvm
第二种方式,在 build.gradle 中添加:
apply plugin: 'application'
applicationDefaultJvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"]
然后运行 ./gradlew bootRun
这两种方式都会使程序监听 5005 端口。但是第一种方式会暂停以等待调试客户端的连接,然后启动 SpringBoot;而第二种方式程序不会暂停,而是直接启动整个程序。
五、自动化测试
技浅,不太明白。等我开始写测试了之后再看。
六、使用 JaCoCo
JaCoCo 是一款代码测试覆盖率的统计工具。
- 在 build.gradle 中添加配置:
apply plugin "jacoco"
- 运行
./gradlew build
,生成原始数据文件,并且会在build\libs\
下生成 jar 文件 - 运行
./gradlew jacocoTestReport
,生成测试报告 - 打开
build/report/jacoco/test/index.html
,即可看到单元测试覆盖率报告.
具体可以查看文章借鉴。
文章借鉴自:无知者云