W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
Gradle 提供了多種的方法讓您可以在構建腳本中添加屬性. 使用 -D 命令選項,您可以向運行 Gradle 的 JVM 傳遞一個 system 屬性 . Gradle 命令的 -D 選項 和 Java 命令的 -D 選項有些相同的效果.
您也可以使用屬性文件向您的 Project 對象中添加屬性. 您可以在 Gradle 用戶目錄( 如果您沒有在USER_HOME/.gradle 配置默認設置,則由"GRADLE_USER_HOME" 環(huán)境變量定義) 或者項目目錄放置一個 gradle.properties 文件.如果是多項目的話,您可以在每個子目錄里都放置一個 gradle.properties 文件. gradle.properties 文件內容里的屬性能夠被 Project 對象訪問到. 不過有一點,用戶目錄中的 gradle.properties 文件優(yōu)先權大于項目目錄中的 gradle.properties 文件.
您也可以通過 -P 命令選項直接向Project 對象中添加屬性.
另外,當 Gradle 看到特別命名的 system 屬性或者環(huán)境變量時,Gradle 也可以設置項目屬性. 比如當您沒有管理員權限去持續(xù)整合服務,還有您需要設置屬性值但是不容易時,這個特性非常有用. 出于安全的原因,在這種情況下,您沒法使用 -P 命令選項,您也不能修改系統(tǒng)級別的文件. 確切的策略是改變您持續(xù)繼承構建工作的配置,增加一個環(huán)境變量設置令它匹配一個期望的模式. 對于當前系統(tǒng)來說,這種方法對于普通用戶來說是不可見的. [6]
如果環(huán)境變量的名字是 ORG_GRADLE_PROJECT=somevalue, Gradle 會使用值為 somevalue 在您的 Project 對象中設定一個支持屬性. 另外 Gradle 也支持 system 屬性,但是使用不同的名字模式,例如 org.gradle.project.prop .
您也可以在 gradle.properties 文件中設置 system 屬性.如果一個屬性名的前綴為 “systemProp”,那么這個屬性和它的屬性值會被設置為 system 屬性. 如果沒有這個前綴,在多項目構建中,除了根項目會被忽略外,“systemProp.” 屬性會在任何項目中設置.也就是說僅僅根項目的 gradle.properties 文件會被檢查其屬性的前綴是否是 “systemProp”.
**例子 14.2.通過 gradle.properties 文件設置屬性
gradle.properties
gradlePropertiesProp=gradlePropertiesValue
sysProp=shouldBeOverWrittenBySysProp
envProjectProp=shouldBeOverWrittenByEnvProp
systemProp.system=systemValue
build.gradle
task printProps << {
println commandLineProjectProp
println gradlePropertiesProp
println systemProjectProp
println envProjectProp
println System.properties['system']
}
[6]. Jenkins, Teamcity, or Bamboo 都是 提供這個功能的 CI 服務.
使用 gradle -q -PcommandLineProjectProp=commandLineProjectPropValue -Dorg.gradle.project.systemProjectProp=systemPropertyValue printProps 輸出
> gradle -q -PcommandLineProjectProp=commandLineProjectPropValue -Dorg.gradle.project.systemProjectProp=systemPropertyValue printProps
commandLineProjectPropValue
gradlePropertiesValue
systemPropertyValue
envPropertyValue
systemValue
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: