gpt4 book ai didi

properties - Gradle/Groovy 属性

转载 作者:行者123 更新时间:2023-12-02 14:47:33 25 4
gpt4 key购买 nike

我想使用每台构建机器(dev、ci、uat...)上的外部属性文件来控制 Gradle 构建脚本中的“全局”配置,并使用命令行参数指定文件名。

例如gradle -DbuildProperties=/example/config/build.properties

我特别不想使用 gradle.properties,因为我们现有的项目已经使用了这种方法,并且(例如)我们希望能够修改数据库 url 和 jdbc 驱动程序,而不必更改每个项目。

到目前为止已经尝试过:-

Properties props = new Properties() 
props.load(new FileInputStream("$filename"))
project.setProperty('props', props)

它可以工作,但有一个已弃用的警告,但我不知道如何避免这种情况。

还尝试过将 groovy 风格的配置文件与 ConfigSlurper 结合使用:-

environments {
dev {
db.security {
driver=net.sourceforge.jtds.jdbc.Driver
url=jdbc:someserver://somehost:1234/some_db
username=userId
password=secret
}
}
}

但是冒号和正斜杠会导致异常,我们不想用转义字符来搞乱配置。

必须有一种未弃用的方法来执行此操作 - 谁能建议“正确”的方法来执行此操作?

谢谢

最佳答案

您可以很容易地摆脱已弃用的警告。您收到的消息可能如下所示:

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. Deprecated dynamic property: "props" on "root project 'private'", value: "true".

可以通过替换来修复:

project.setProperty('props', props) 

project.ext.props = props

关于properties - Gradle/Groovy 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com