我有一个Gradle 6.0.1
项目。build.gradle
(摘录)看起来像:
plugins {
id "application"
id "com.github.edeandrea.xjc-generation"
id "eclipse"
id "idea"
id "java"
id "org.springframework.boot"
}
...
dependencies {
implementation platform("org.springframework.boot:spring-boot-dependencies:${property("spring-boot.version")}")
// ...more stuff here
}
// ...more stuff here
我在管理settings.gradle
中的所有插件版本:
pluginManagement {
plugins {
id "application"
id "com.github.edeandrea.xjc-generation" version "1.0"
id "eclipse"
id "idea"
id "java"
id "org.springframework.boot" version "${spring-boot.version}"
}
}
rootProject.name = "spring-core"
...我通常将工件版本放在gradle.properties
中:
#
# Dependency Versions
oracle.version = 18.3.0.0
spring-boot.version = 2.2.1.RELEASE
#
# Gradle Settings
org.gradle.configureondemand = false
org.gradle.daemon = false
#
# System Settings
systemProp.file.encoding = UTF-8
systemProp.sun.jnu.encoding = UTF-8
现在的问题是,我无法以在build.gradle
中读取点属性的方式读取settings.gradle
中的点属性(从gradle.properties
)-我已经尝试使用${property("spring-boot.version")}
。
我可以很容易地将密钥更改为springBootVersion
之类的东西,它也能工作,但我想知道是否有一种方法可以像我目前拥有的那样:spring-boot.version
.
2条答案
按热度按时间bqjvbblv1#
使用
getProperty("spring-boot.version")
简单的gradle项目,带有其他变体
gradle.properties
property('aaa.bbb.ccc')
失败,因为它尝试获取当前对象(任务)的属性,但aaa.bbb.ccc
是为项目定义的但是
project.property('aaa.bbb.ccc')
成功,因为它应该project.'aaa.bbb.ccc'
与groovy中的project.getProperty('aaa.bbb.ccc')
相同project.getProperty('aaa.bbb.ccc')
可以正常工作,因为groovy基本对象GroovyObject
(IHMO)和
getProperty(name)
没有前缀实际上位于org.gradle.groovy.scripts.basicScript中,并且没有真正的文档记录...x3naxklr2#
对我来说,@daggett的解决方案不起作用,但我可以通过
settings.gradle
访问~/.gradle/gradle.properties
内部定义的属性,方法如下:为了提供一些上下文,我将使用此脚本读取Gradle构建缓存节点远程服务器的凭据: