擴(kuò)展屬性

2018-07-01 15:40 更新

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

例子 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

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

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

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)