【发布时间】:2021-03-03 14:20:04
【问题描述】:
我设置了一个使用 Java 8 和 Kotlin 的 Spring Boot 项目。我想将项目迁移到 Java 15,但遗憾的是我没有找到任何对此有用的文档。
到目前为止,我能够将我的 Spring boot 版本从 2.3.3.RELEASE 升级到版本 2.4.0,并根据使用 spring initializr 创建的项目示例在 jvmTarget 中引用项目以使用 Java 14。
但是,我没有找到升级到 Java 15 的方法。任何想法都将不胜感激。
这就是我的 build.gradle 的样子:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.lang.System.getenv
buildscript {
repositories {
maven {
url = uri("https://plugins.gradle.org/m2/")
}
}
dependencies {
classpath("org.jmailen.gradle:kotlinter-gradle:3.0.2")
}
}
plugins {
id("org.springframework.boot") version "2.4.0"
id("io.spring.dependency-management") version "1.0.10.RELEASE"
kotlin("jvm") version "1.4.0"
kotlin("plugin.spring") version "1.4.0"
id ("org.owasp.dependencycheck") version "5.3.2"
id ("com.github.spotbugs") version "4.5.0"
id ("org.jmailen.kotlinter") version "3.0.2"
`jacoco`
}
tasks.named<org.springframework.boot.gradle.tasks.run.BootRun>.
("bootRun") {
args("--spring.profiles.active=local")
}
jacoco {
toolVersion = "0.8.6"
}
group = "au.project"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
maven {
url = uri("https://...")
credentials {
username = getenv("ARTIFACTORY_USER")
password = getenv("ARTIFACTORY_PASSWORD")
}
}
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-
webflux")
implementation("com.fasterxml.jackson.module:jackson-module-
kotlin")
implementation("io.github.microutils:kotlin-logging:1.8.3")
implementation("io.projectreactor.kotlin:reactor-kotlin-
extensions")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
implementation("org.owasp:dependency-check-gradle:5.3.2")
implementation("org.springdoc:springdoc-openapi-kotlin:1.4.8")
implementation("org.springdoc:springdoc-openapi-webflux-ui:1.4.8")
developmentOnly("org.springframework.boot:spring-boot-devtools")
testImplementation("org.springframework.boot:spring-boot-starter-
test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
testImplementation("io.projectreactor:reactor-test")
testImplementation("com.github.tomakehurst:wiremock-jre8:2.27.2")
testImplementation("com.openpojo:openpojo:0.8.6")
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "14"
}
}
....
注意:在 build.gradle 中更改 kotlinOptions 属性的 jvmTarget = 15,我得到以下异常:“未知 JVM 目标版本:15 支持的版本:1.6、1.8、9、10、11、12、12 ,14. 是否意味着 Kotlin 不支持 Java 15?
【问题讨论】:
-
你下载 JDK 15 了吗?
-
到底是什么问题?您是否尝试将 jvm 目标升级到 15?你有错误吗?
标签: spring spring-boot kotlin gradle build.gradle