【SpringBoot】使用Gradle Kotlin DSL构建并运行Hello World
添加更多内容
目前,使用Spring Initializr可以生成Kotlin DSL的Spring Boot项目,如果要开始一个新项目,建议使用它来生成。
做的事情
参照以下资料,使用Kotlin-DSL运行SpringBoot。
尝试迁移到build.gradle.kts – DroidKaigi 2019
在这篇文章中使用的存储库如下:
k163377/kts-test:使用Kotlin DSL的Spring Boot
思考
如果你在谷歌上搜索,意外地可能会找到一些信息,所以只要查一下,就可以用充分的努力解决各种问题。
步骤
我们将按照以下步骤进行。
-
- 使用Spring Initializr进行初始化
-
- 修改settings.gradle文件
-
- 修改build.gradle文件
- 添加控制器并输出“Hello World”
我在IntelliJ IDEA 2018.3.2(Ultimate Edition)环境下完成了。
通过Spring Initializr进行初始化。
由于有许多其他解释性文章存在,所以我们不做。这次我们选择了”使用Kotlin和Spring Boot 2.1.3生成Gradle项目”。
更改 settings.gradle
根据5:30左右的会话进行参考,我们将对settings.gradle进行修改。
pluginManagement {
repositories {
gradlePluginPortal()
}
}
rootProject.name = 'kts-test'
只需将 “を” 改为 “に”,并将文件名改为 settings.gradle.kts,完成了。
pluginManagement {
repositories {
gradlePluginPortal()
}
}
rootProject.name = "kts-test"
修改 build.gradle
由于动力不足,我无法提供详细资料(十分抱歉)。
根据大约在11:36的会话参考,已经进行了`'([^’]+)’→”$1″`的替换操作。接下来是全力以赴进行了改写。
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'org.jetbrains.kotlin.jvm' version '1.2.71'
id 'org.jetbrains.kotlin.plugin.spring' version '1.2.71'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.wrongwrong'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
compileKotlin {
kotlinOptions {
freeCompilerArgs = ['-Xjsr305=strict']
jvmTarget = '1.8'
}
}
compileTestKotlin {
kotlinOptions {
freeCompilerArgs = ['-Xjsr305=strict']
jvmTarget = '1.8'
}
}
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.springframework.boot") version "2.1.3.RELEASE"
id("org.jetbrains.kotlin.jvm") version "1.2.71"
id("org.jetbrains.kotlin.plugin.spring") version "1.2.71"
}
apply(plugin = "io.spring.dependency-management")
group = "com.wrongwrong"
version = "0.0.1-SNAPSHOT"
val sourceCompatibility = "1.8"
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
// KotlinCompileに関しては2通りの書き方をしているが、統一性の観点から恐らく下に合わせる方がよい
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
val compileTestKotlin: KotlinCompile by tasks
compileTestKotlin.kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
添加控制器并打开哈罗哇
我将重复使用我之前写的文章中的控制器。
import org.springframework.ui.Model
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
@RestController
@RequestMapping("my")
class MyController{
@GetMapping
fun myGetTest(model: Model): String{
return "hello from spring boot"
}
}
如果缺少以下两个依赖项,则无法编译通过或者会产生警告,所以需要添加。
implementation(group = "org.springframework.boot", name = "spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
当你运行它并访问http://localhost:8080/my,你就可以通过这个链接打招呼了。