我如何将包括摇篮属性文件?
例如,在蚂蚁,我可以做到以下几点:
<property file="${basedir}/build.properties" />
我如何将包括摇篮属性文件?
例如,在蚂蚁,我可以做到以下几点:
<property file="${basedir}/build.properties" />
你可以使用Java语法,如做到这一点:
Properties props = new Properties()
InputStream ins = new FileInputStream("/path/file.properties")
props.load(ins)
ins.close()
这应该在任何Groovy脚本工作。 有可能是这样做虽然,使用闭包或其它精美的快捷方式的更加“时髦”的生活方式。
编辑:“在”是常规的保留字。 变量不能被命名这种方式,它重命名为“INS”
我真的建议使用摇篮的默认属性文件。 如果你把性质gradle.properties
在同一目录中build.gradle
,他们会自动出现。
请参阅用户手册 。
你propably正在寻找的是这样的:
Properties props = new Properties()
props.load(new FileInputStream("$project.rootDir/profile/"+"$environment"+".properties"))
props.each { prop ->
project.ext.set(prop.key, prop.value)
}
然后,您的属性应该是直接通过他们的名字进行访问。 即:
println "$jdbcURL"
println project.jdbcURL
那里有可能是一个原因(阴影?)为什么它的一个坏主意,要做到这一点? 不知道为什么它不支持开箱即用,也可以在其他地方找到。
这里是我包括我的.jar的.csv文件摇篮建立:
sourceSets {
main {
java {
srcDir 'src/main/java'
output.classesDir = 'build/classes/main'
}
resources {
srcDir 'src/main/resources'
include '*.csv'
output.resourcesDir = 'build/resources/main'
}
}
}
然后,当我的应用程序加载的资源,那就是独立摇篮的完成。
包括您的.properties文件你可以使用这样的事情:
apply from: "version.properties"
这就是它!
使用GRADLE_USER_HOME环境变量设置gradle产出的主目录。 放在那里gradle.properties文件和设置参数。
https://docs.gradle.org/current/userguide/build_environment.html
在用户的主目录中的属性文件已超过在项目目录属性文件的优先级。
我一直没有引起人们蚂蚁缺失的这一特点,尤其是在属性替换类似work.dir=${basedir}/work
。 随着一些大的构建我执行大量的环境设置进行自动化测试的工作,也有一些任务,只是需要用户和环境的配置设置。 简单的“gradle.properties”是不够的,尤其是对于跨多个项目共享的设置。
我放在一起管理着一个合理的财产加载方案为例gradle这个文件: 负载properties.gradle 。 这使项目准确定义它的使用属性default-properties.gradle
文件,并允许用户定义自己的本地设置覆盖它们。 因为阅读中的“属性”文件gradle这个脚本,您可以在他们额外的逻辑和值不仅限于字符串。
另外,它允许用于定义每个环境属性文件来使用(如“MAC”,或“詹金斯机”,或“远程”)通过在传递“-Penv =(ENV名)”参数,以摇篮。
接受答案的工作,除非你想要的属性添加到项目中,因为这是第一个搜索结果我将添加我的解决方案,它在gradle这个3.x的工作 一个简单的方法来做到这一点是通过蚂蚁。
ant {
property(file: 'properties.file')
}
如果你需要的财产,以驼峰式转换为方便您的脚本(记住基于点语法预计和实际对象的gradle中存在):
println "property value:{dot.property.from.file}" //this will fail.
def camelCaseProperty = project.getProperties().get("dot.property.from.file")
println "camelCaseProperty:${camelCaseProperty}" //this wont fail
如果你需要一个默认值,如果它没有指定:
def propertyWithDefault = project.getProperties().get("dot.property.from.file","defaultValue");
通过这种方法,至少在的IntelliJ / Android的工作室时,IDE会将你的属性文件和脚本的gradle并添加完成后,参考检查等