在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Scala/ 有什么gradle生命周期是在project對象創(chuàng)立后,dependencies

有什么gradle生命周期是在project對象創(chuàng)立后,dependencies之前嗎?

我想通過Extension 來在Plugin 中修改 projectdependencies
現(xiàn)在遇到了這樣的問題。

如果我直接在我的apply方法中獲取extension的話,那projectextension還未被賦值。

但是如果我在project#afterEvaluate{}中獲取extension后修改dependencies的話又會報錯

Cannot change dependencies of configuration

所以我想問一下,有什么生命周期是project對象創(chuàng)建后(extension被賦值)但dependencies未執(zhí)行完畢呢?

更新提問

class PluginDemo implements Plugin<Project> {
    @Override
    void apply(Project target) {
        printExtension(target)

        target.rootProject.subprojects.each {
            if (it.name.startsWith("m_")) {
                println("?${it.name}")
                target.dependencies.implementation it
            } else {
                println("?${it.name}")
            }
        }
    }

    void printExtension(Project target) {
        target.extensions.create('myextension', MyExtension)
        println("myextension${target.myextension.merge}")
    }
}

我想通過一個外部的開關(guān)來讓:app依賴其他subProject,所以想通過extension 來控制。

回答
編輯回答
心癌

dependencies配置本身就有excludetransitive配置啊,還不夠你用嗎? https://docs.gradle.org/curre...

不明白具體你的需求,能否貼出build.gradleDSL配置幫助分析呢?


EDIT: 如果你期望通過開關(guān)判斷,那么其實直接借用groovy DSL就可以了:


dependendies {
    if ("${myProp}" == 'true') {
         compile ':subproj'
    }
}

這個myProp可以配置在gradle.properties文件,也可以在命令行執(zhí)行的時候通過命令行system properties傳遞進去:

./gradlew -DmyProp=true build

如果你的開關(guān)條件是通過其他渠道get到,那么需要在groovy DSL中編寫對應(yīng)的get方式

2018年2月18日 19:38