在 Gradle 中,您可以通过以下方式从属性文件加载数据:
apply from: "version.properties"
从 Gradle 2.0 开始,这会生成警告:
"Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties."
在最新最好的 Gradle 版本中,相同行为的规范方法是什么?
我当然可以通过定义辅助方法来解决这个问题,但我很好奇是否有更简洁的方法。
最佳答案
从 gradle.properties
以外的属性文件加载数据的正确方法一直是使用 Java 的 Properties
类:
def versionProperties = new Properties()
file("version.properties").withReader { versionProperties.load(it) }
// Perhaps a future Groovy version could simplify this to:
def versionProperties = file("version.properties").loadProperties()
通过 apply from: "version.properties"
加载属性只是巧合,而且只有当所有属性值都是数字时(因为那时属性文件语法成为 Groovy 语法的子集)。弃用警告将在 1.x 中出现(至少对于去年的 1.x 版本而言)。 2.0 最终取消了在不使用 def
或 ext.
声明的情况下即时引入属性的功能,这解释了为什么它很难失败。
关于java - Gradle 2.0 - 加载 java 属性文件的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25210978/