文章目录
- 前言
- 使用IntelliJ IDEA创建单模块工程
- 搭建多模块环境
- 创建主模块
- 创建库模块
- 部署
- 参考文档
- 联系作者
前言
环境说明:
工具 | 版本 |
IntelliJ IDEA | Ultimate 2021.1 |
SpringBoot | 2.5.0 |
Kotlin | 1.5.10 |
Gradle | 7.0.2 |
不同版本之间可能会有差异, 尤其是Gradle
的版本, 会影响kts
编译脚本.
注意: SpringBoot
Gradle插件最低需要Gradle
版本6.8.x
.
你可以在这里看到声明
使用IntelliJ IDEA创建单模块工程
先使用IDEA
工具创建一个普通的SpringBoot
+Gradle
+Kotlin
的工程:
按照图中步骤, 很简单就搭建好了SpringBoot
的开发环境.
图中文件名的颜色是
git
管理插件导致的, 与本文内容无关紧要.
直接运行, 就可以启动服务了, 默认端口是8080
浏览器打开: http://localhost:8080/
到这里, 单模块的SpringBoot
+Gradle
+Kotlin
工程就搭建好了, 接下来在此工程上搭建多模块
的开发环境.
搭建多模块环境
创建主模块
新建主模块文件夹, 比如app
, 然后将src
文件夹移动到app
文件夹内:
在app
文件夹中创建build.gradle.kts
脚本编译文件, 内容如下:
group = "com.angcyo.spring"
version = "0.0.1"
plugins {
//模块需要其他插件, 在这里写
}
dependencies {
//模块需要其他第三方库, 在这里写
}
修改根目录中的settings.gradle.kts
, 加入include
语句:
rootProject.name = "SpringGradleKotlinDemo"
include("app") //这一行
修改根目录中的build.gradle.kts
, 如下:
plugins {
id("org.springframework.boot") version "2.5.0"
id("io.spring.dependency-management") version "1.0.11.RELEASE"
kotlin("jvm") version "1.5.10"
kotlin("plugin.spring") version "1.5.10"
}
repositories {
mavenCentral()
}
//注意以下内容
subprojects {
apply(plugin = "org.springframework.boot")
apply(plugin = "io.spring.dependency-management")
apply(plugin = "org.jetbrains.kotlin.plugin.spring")
apply(plugin = "org.jetbrains.kotlin.jvm") //kotlin插件
apply(plugin = "org.jetbrains.kotlin.plugin.allopen") //移除kotlin默认生成类中的final修饰
repositories {
mavenCentral()
}
java.sourceCompatibility = JavaVersion.VERSION_1_8
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compileOnly("org.projectlombok:lombok")
developmentOnly("org.springframework.boot:spring-boot-devtools")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
annotationProcessor("org.projectlombok:lombok")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
}
修改了kts
脚本文件之后, 都需要重新加载
一下, 才能生效, 如下图:
重新加载
之后, 当你的app
文件夹的带图标之后, 就说明配置成功了.
创建库模块
新建一个文件夹
用来存放公共库, 比如library
文件夹, 在新的文件夹中创建公共模块
, 比如util
.
同时修改根目录中的settings.gradle.kts
, 加入include
语句:
rootProject.name = "SpringGradleKotlinDemo"
include("app") //这一行
include(":library:util") //这一行
需要重新加载脚本
, 才能生效哦!
之后在app
模块中的build.gradle.kts
文件中引入util
模块的依赖:
group = "com.angcyo.spring"
version = "0.0.1"
plugins {
//模块需要其他插件, 在这里写
}
dependencies {
//模块需要其他第三方库, 在这里写
implementation(project(":library:util")) //注意这里
}
这样在app
模块中, 就可以使用util
模块的代码了.
部署
生成jar
包, 只需要运行gradlew :app:bootJar
task即可, 也可以双击菜单如下:
生成的jar
包在这个路径app->build->libs
下: