Spring boot Gradle无法识别springboot buildInfo插件

Spring boot Gradle无法识别springboot buildInfo插件,spring-boot,gradle-plugin,spring-boot-actuator,gradle-kotlin-dsl,Spring Boot,Gradle Plugin,Spring Boot Actuator,Gradle Kotlin Dsl,我正在尝试将springboot buildInfo插件添加到build.gradle.kts中,以便生成build-info.properties文件,并通过/exactor/info端点公开构建信息,即应用程序版本。但是,在添加buildInfo插件时,我不断遇到以下错误: 未解析的引用:springBoot 我一直在引用以下内容,但它只是说只需添加插件和构建 我是否将插件放置在gradle文件的正确位置?我是否需要另一个依赖项或插件引用来实现此功能 以下是我的build.gradle.kt

我正在尝试将springboot buildInfo插件添加到build.gradle.kts中,以便生成build-info.properties文件,并通过/exactor/info端点公开构建信息,即应用程序版本。但是,在添加buildInfo插件时,我不断遇到以下错误:

未解析的引用:springBoot

我一直在引用以下内容,但它只是说只需添加插件和构建

我是否将插件放置在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,并且正如gradledoc所声明的,现在gradle kotlin dsl不能使用类型安全访问器

而不是

springBoot {
   buildInfo()
}
在build.gradle.kts中,必须使用

configure<org.springframework.boot.gradle.dsl.SpringBootExtension> {
  buildInfo()
}