在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.")
}
}
}
}}