在.gradle文件中设置gradle系统属性

时间:2017-01-23 13:56:19

标签: gradle

我有一个“general.gradle”文件,用于设置所有项目的公共属性。 此文件提交给git存储库并在许多用户之间共享。 我想添加一个系统属性,以便它对所有用户都是通用的

像systemProp.http.nonProxyHosts

这样的选项

有办法吗?

1 个答案:

答案 0 :(得分:1)

您可以创建另一个文件,例如general.properties,添加前缀为systemProp的系统属性,然后在general.gradle中加载该文件中的属性,如下所示:

FileInputStream fileInputStream = new FileInputStream(new File('{YOUR_PATH}/general.properties'))
Properties properties = new Properties()
properties.load(fileInputStream)
fileInputStream.close()

properties.stringPropertyNames().forEach({key -> ext.set(key, properties.getProperty(key))})

然后将其加载到项目中的根build.gradle文件中,如下所示:

apply from: '{YOUR_PATH}/general.gradle'

您可以从ext属性中检索它。在此示例后,如果您将general.properties放在项目中并添加,例如:spring=dev。然后,您将属性加载代码放在general.gradle中并将其应用到build.gradle,如果您在build.gradle中添加此类任务:

task  testProp << {
String profile = getProperty('spring')
System.setProperty('Spring.profiles.active', profile)
String prop = System.getProperty('Spring.profiles.active');
println prop
}

然后任务执行应打印出dev