我已经阅读了这些文档,但不知道如何在使用 Kotlin 和 Gradle 时将
https://docs.spring.io/spring-boot/docs/2.2.x/reference/html/appendix-configuration-metadata.html#configuration-metadata-annotation-processor
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-kotlin-configuration-properties 我已找到一种方式来合并它,但我想知道官方的方法。
additional-spring-configuration-metadata.json
与 kapt
合并。https://docs.spring.io/spring-boot/docs/2.2.x/reference/html/appendix-configuration-metadata.html#configuration-metadata-annotation-processor
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-kotlin-configuration-properties 我已找到一种方式来合并它,但我想知道官方的方法。
plugins {
id("org.springframework.boot") version "2.2.2.RELEASE"
id("io.spring.dependency-management") version "1.0.8.RELEASE"
kotlin("jvm") version "1.3.61"
kotlin("plugin.spring") version "1.3.61"
kotlin("kapt") version "1.3.61"
}
dependencies {
kapt("org.springframework.boot:spring-boot-configuration-processor")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
…
}
kapt {
arguments {
arg(
"org.springframework.boot.configurationprocessor.additionalMetadataLocations",
"$projectDir/src/main/resources"
)
}
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
org.springframework.boot.configurationprocessor.additionalMetadataLocations
。 我已经阅读了spring-boot-configuration-processor的源代码,关键位置是org.springframework.boot.configurationprocessor.MetadataStore#locateAdditionalMetadataFile
。 默认行为在类输出路径中查找附加的json文件。 但在gradle构建中,附加的json文件位于$buildDir/resources/main
。 - JasonMing