Gradle 2.0 - 加载java属性文件的正确方法?

时间:2014-08-08 19:32:36

标签: java gradle

在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.ExtraPropertiesExtensi‌​on.html for information on the replacement for dynamic properties."

在最新最好的Gradle版本中,相同行为的规范手段是什么?

我当然可以通过定义辅助方法来解决这个问题,但我很好奇是否有更简洁的方法。

1 个答案:

答案 0 :(得分:7)

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最终删除了在不使用defext.声明属性的情况下即时引入属性的功能,这解释了为什么它难以解决。