spring-boot - Gradle 无法识别 springboot buildInfo 插件
问题描述
我正在尝试将springboot
buildInfo
插件添加到我的build.gradle.kts
,以便我可以生成文件并通过端点build-info.properties
公开构建信息(即应用程序版本) 。/actuator/info
但是,当我添加 buildInfo 插件时,我不断收到以下错误:
Unresolved reference: springBoot
我一直在参考以下Spring 文档,但它只是说只需添加插件并构建。
我是否将插件放在我的 gradle 文件中的正确位置?我是否需要另一个依赖项或插件引用才能使其正常工作?
这是我的主要部分的build.gradle.kts
样子:
group = "com.walmart.muse.core-kt"
version = getLatestTagVersion()
java.sourceCompatibility = JavaVersion.VERSION_1_8
java.targetCompatibility = JavaVersion.VERSION_1_8
plugins {
id("org.springframework.boot") version "2.2.0.RELEASE" apply false
kotlin("jvm") version "1.3.50"
kotlin("plugin.spring") version "1.3.50"
kotlin("plugin.jpa") version "1.3.50"
kotlin("plugin.allopen") version "1.3.50"
}
// This little code block is what is causing the error.
// I want to use it to get buid-info.properties so I can hit `/actuator/info`
// to expose my build info, but this isn't working :(
springBoot {
buildInfo()
}
allprojects {
repositories {
maven(url = "https://my-company's-repository.com") // edited for privacy
}
apply(plugin = "org.jetbrains.kotlin.jvm")
apply(plugin = "java")
apply(plugin = "org.springframework.boot")
apply(plugin = "io.spring.dependency-management")
apply(plugin = "org.jetbrains.kotlin.plugin.allopen")
apply(plugin = "org.jetbrains.kotlin.plugin.spring")
apply(plugin = "org.jetbrains.kotlin.plugin.jpa")
apply(plugin = "kotlin-spring")
dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.apache.logging.log4j:log4j-api-kotlin:1.0.0")
implementation("io.springfox:springfox-swagger2:2.7.0")
implementation("io.springfox:springfox-swagger-ui:2.7.0")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
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")
implementation("com.google.code.gson:gson:2.8.4")
runtimeOnly("mysql:mysql-connector-java:5.1.6")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testImplementation("com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0")
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit")
}
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
allOpen {
annotation("javax.persistence.Entity")
annotation("javax.persistence.Embeddable")
annotation("javax.persistence.MappedSuperclass")
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
解决方案
原因是,您使用apply
gradle doc https://docs.gradle.org/current/userguide/kotlin_dsl.html#sec:kotlin_using_standard_api现在 gradle-kotlin-dsl 不能使用类型安全访问器。
代替
springBoot {
buildInfo()
}
在build.gradle.kts
你必须使用
configure<org.springframework.boot.gradle.dsl.SpringBootExtension> {
buildInfo()
}
推荐阅读
- c# - 如何使用一个按钮来控制多个骰子?
- asp.net-mvc - 将自动生成的字段和值添加到数据库
- python - wxPython 小部件方面的变化
- python-3.x - Python - 如何使用 lambda 函数通过列表中所有元素的倍数过滤列表?
- rest - 使用 Instagram 显示 API 的 OAuthException
- laravel - Laravel Carbon 上周开始 + 结束?
- node.js - Socket.io app ...我应该使用emit还是使用常规http请求并使用express处理它?
- docker - Docker 无法删除符号链接到外部驱动器的卷
- reactjs - ZingChart-react 与选择工具模块
- ios - 在 iOS 网络浏览器中平滑滚动