擴(kuò)展屬性

2018-07-01 15:36 更新

在 Gradle 領(lǐng)域模型中所有被增強(qiáng)的對象能夠擁有自己定義的屬性. 這包括,但不僅限于 projects , tasks , 還有 source sets . Project 對象可以添加,讀取,更改擴(kuò)展的屬性. 另外,使用 ext 擴(kuò)展塊可以一次添加多個屬性.

例子 13.3. 使用擴(kuò)展屬性

build.gradle

apply plugin: "java"

ext {
    springVersion = "3.1.0.RELEASE"
    emailNotification = "build@master.org"
}

sourceSets.all { ext.purpose = null }

sourceSets {
    main {
        purpose = "production"
    }
    test {
        purpose = "test"
        }
    plugin {
        purpose = "production"
    }

    }

    task printProperties << {
        println springVersion
        println emailNotification
        sourceSets.matching { it.purpose == "production" }.each { println it.name }
    }

使用gradle -q printProperties輸出結(jié)果

> gradle -q printProperties
3.1.0.RELEASE
build@master.org
main
plugin

在上面的例子中,一個 ext 擴(kuò)展塊向 Project 對象添加了兩個擴(kuò)展屬性. 名為 perpose 的屬性被添加到每個 source set,然后設(shè)置 ext.purpose 等于 null ( null值是被允許的 ). 當(dāng)這些擴(kuò)展屬性被添加后,它們就像預(yù)定義的屬性一樣可以被讀取,更改值.

例子中我們通過一個特殊的語句添加擴(kuò)展屬性,當(dāng)您試圖設(shè)置一個預(yù)定義屬性或者擴(kuò)展屬性,但是屬性名拼寫錯誤或者并不存在時,操作就會失敗. Project 對象可以在任何地方使用其擴(kuò)展屬性 ,它們比局部變量有更大的作用域. 一個項目的擴(kuò)展屬性對其子項目也可見.

+

關(guān)于擴(kuò)展屬性更多的細(xì)節(jié)還有它的API,請看 ExtraPropertiesExtension 類的 API 文檔說明.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號