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

标签 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 版本中,相同行为的规范方法是什么?

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

最佳答案

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. 声明的情况下即时引入属性的功能,这解释了为什么它很难失败。

关于java - Gradle 2.0 - 加载 java 属性文件的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25210978/

相关文章:

java - 尝试在 Android 上运行时无法处理,索引时出错

java - CalendarFX 结合 JavaFX : Module javafx. 未找到控件

ios - 构建 Kotlin MPP iOS 应用程序时出现 XCode 错误

java - 从 Euler ZXZ 旋转转换为固定轴 XYZ 旋转

Java - 存储 GMT 时间

java - 出于克隆目的,序列化何时优于克隆?

java - 错误 : Can't compareTo()id

java - Gradle 缓存不适用于 GitLab-CI

android - 不要在Android Studio中使用GitHub上的库

unity-game-engine - Unity gradle 模板文件夹丢失 (2021.3.6f)