在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的原創文章,請關注公衆號"汪子熙":