在kotlin gradle dsl中外部化插件版本?

在kotlin gradle dsl中外部化插件版本?,kotlin,gradle-plugin,gradle-kotlin-dsl,Kotlin,Gradle Plugin,Gradle Kotlin Dsl,我想外部化插件版本 我试过了 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile object DependencyVersions { const val SPRING_BOOT_VERSION = "2.1.6.RELEASE" const val DEPENDENCY_MANAGEMENT_VERSION = "1.0.8.RELEASE" } plugins { id("org.springframew

我想外部化插件版本

我试过了

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

object DependencyVersions {
    const val SPRING_BOOT_VERSION = "2.1.6.RELEASE"
    const val DEPENDENCY_MANAGEMENT_VERSION = "1.0.8.RELEASE"
}

plugins {
    id("org.springframework.boot") version DependencyVersions.SPRING_BOOT_VERSION
    id("io.spring.dependency-management") version DependencyVersions.DEPENDENCY_MANAGEMENT_VERSION
}

但是我得到了一个未解决的引用:DependencyVersions这直到最近在GradleAPI中仍然是正确的,但是最近被修复了。看见对于Kotlin DSL,有一个解决方案

解决这一问题的唯一方法是使用插件解决方案策略设置版本,正如同一期《设置》中建议的那样。gradle:

并在gradle.properties中添加一个插件名后缀为Version的属性,例如jacksonVersion

pluginManagement {
resolutionStrategy {
    eachPlugin {
        if (requested.version == null) {
            def pluginName = requested.id.name.split('-').collect { it.capitalize() }.join().uncapitalize()
            def versionPropertyName = (requested.id.id == 'org.jetbrains.kotlin.jvm') ?
                    "kotlinPluginVersion" : "${pluginName}PluginVersion"
            logger.info("Checking for plugin version property '$versionPropertyName'.")
            if (gradle.rootProject.hasProperty(versionPropertyName)) {
                def version = gradle.rootProject.properties[versionPropertyName]
                logger.info("Setting '${requested.id.id}' plugin version to $version.")
                useVersion version
            } else {
                logger.warn("No version specified for plugin '${requested.id.id}' and property " +
                        "'$versionPropertyName' does not exist.")
            }
        }
    }
}}