在Gradle中,当我声明具有硬编码版本的插件时,效果很好:
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
}
但是,如果我尝试对其进行参数化,则会出现异常。
gradle.properties
的内容:
springBootVersion=2.1.4.RELEASE
build.gradle
的内容:
plugins {
id 'org.springframework.boot' version "$springBootVersion"
}
为什么发生以下异常?
Cause: startup failed:
build file 'build.gradle': 10: argument list must be exactly 1 literal non empty string
See https://docs.gradle.org/5.2.1/userguide/plugins.html#sec:plugins_block for information on the plugins {} block
@ line 10, column 5.
id 'org.springframework.boot' version "$springBootVersion"
^
1 error
答案 0 :(得分:2)
您面临的是plugins
块中的documented limitation。您不能在其中使用参数化。
可能的是将插件版本的配置委派给settings.gradle
。
在gradle.properties
中:
springBootVersion=2.1.4.RELEASE
在settings.gradle
中:
// Must be the first statement of settings.gradle
pluginManagement {
resolutionStrategy {
eachPlugin {
if (requested.id.id == "org.springframework.boot") {
useModule("org.springframework.boot:org.springframework.boot.gradle.plugin:${springBootVersion}")
}
}
}
}
在build.gradle
中:
plugins {
id 'org.springframework.boot'
}