在USER_HOME/.gradle目录的gradle.properties里维护自定义属性:
gradlePropertiesProp=gradlePropertiesValue
systemProjectProp=shouldBeOverWrittenBySystemProp
envProjectProp=shouldBeOverWrittenByEnvProp
systemProp.system=systemValue
build.gradle里维护如下内容:
task printProps {
doLast {
// println commandLineProjectProp
println gradlePropertiesProp
println systemProjectProp
println envProjectProp
println System.properties['system']
}
}
gradle build输出:
gradlePropertiesValue
shouldBeOverWrittenBySystemProp
shouldBeOverWrittenByEnvProp
systemValue
换一个命令行:
gradle -q -PcommandLineProjectProp=commandLineProjectPropValue -Dorg.gradle.project.systemProjectProp=systemPropertyValue printProps
可见配置文件里的systemProjectProp=shouldBeOverWrittenBySystemProp已经被优先级更高的,命令行里参数-D传入的值所覆盖了。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":