※使用 def、ext
def springVersion = '5.0.8.RELEASE' ext { mybatisVersion = '3.4.6' } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.springframework', name: 'spring-context', version: springVersion compile group: 'org.mybatis', name: 'mybatis', version: mybatisVersion }
※如果 def 和 ext 都寫一樣的 key,會以 ext 為主
※ext 進階使用
ext { xxx = [ mybatisVersion : '3.4.6', springVersion : '5.0.8.RELEASE' ] } dependencies { compile group: 'org.springframework', name: 'spring-context', version: rootProject.ext.xxx.springVersion compile group: 'org.mybatis', name: 'mybatis', version: rootProject.ext.xxx.mybatisVersion }
※可以定義 Map,Map 裡還能再寫 Map
※使用 gradle.properties
官網連結
這個檔案預設沒有,可以新增在 GRADLE_USER_HOME 或者專案目錄下,Project 有一個寫死的變數,就是這一個,所以名字不能改,如果兩個地方都有這個檔案且 key 相同,會以 GRADLE_USER_HOME 為主
預設的 GRADLE_USER_HOME 在 %username%\.gradle,但可以臨時改變這個目錄,如 gradle -Dgradle.user.home=D:\ooo,就是將目錄變成 D 槽的 ooo 資料夾,將檔案新增在此即可
屬性流程:
初始化由專案的 gradle.properties -> GRADLE_USER_HOME 的 gradle.properties -> build.gradle 的 def -> build.gradle 的 ext,後者蓋前者所以這 4 個地方如果有 key 一樣,最後會被 ext 裡的 key 覆蓋
※gradle.properties
isDebug=false xxx='x2'
※
※settings.gradle
// if (isDebug.toBoolean()) { // include 'SubGradle2' // } if (hasProperty('isDebug') ? isDebug.toBoolean() : false) { include 'SubGradle2' }
※hasProperty 判斷有沒有這個 key,只要有,不管內容是什麼,就算是空的也一樣,都會回傳 true
※因為怕沒有這個 key 會報錯,所以用了 hasProperty
※我試過寫了版本號當字串,如 spring 的版本,然後用在 dependencies
四個地方都設定,但只有 def 和 ext 有用,而且也沒報錯,不知道為什麼
倉庫使用私服
repositories { maven { credentials { username "$user" password "$passwd" } url '私服網址' } }
※user 和 passwd 變數就可以寫在 gradle.properties 裡,當然在這裡寫死也是可以
沒有留言:
張貼留言