我有一个“general.gradle”文件,用于设置所有项目的公共属性。 此文件提交给git存储库并在许多用户之间共享。 我想添加一个系统属性,以便它对所有用户都是通用的
像systemProp.http.nonProxyHosts
这样的选项有办法吗?
答案 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
。