具有https://github.com/gradle/gradle/blob/master/build.gradle摘錄自定義條件的配置:的搖籃項目
ext {
isDevBuild = {
gradle.taskGraph.hasTask(developerBuild)
}
}
task developerBuild {
description = 'Builds distributions and runs pre-checkin checks'
group = 'build'
dependsOn testedDists
}
當我用這個方法在我的項目來創建自定義的配置,我發現:
isDevBuild === true
即它總是正確的,因爲任務'developerBuild'在我的build.gradle項目中,因此在圖中。他們有幾個「不同」的配置(isCIBuild,isCommitBuild,isFinalReleaseBuild,...),所以我想我在這裏出了問題。
有人可以解釋如何使這個配置條件基於一些外部參數?
回到「用Gradle構建和測試」一書的斷言:Groovy的知識不是加號 - 它必須開始使用Gradle。謝謝你的幫助。將在今天晚些時候檢查。 –
我不會說這是必須開始的,但有必要實施像這樣的高級解決方案。 (需要較少Groovy知識的簡單替代方案是根據系統屬性在不同配置之間切換。)然後,大部分代碼可以用Java風格編寫(使用匿名內部類等),或者從字面上用Java編寫將其移入插件。在這種特殊情況下,真正的挑戰是理解Gradle方面:任務圖API,配置與執行階段等。 –
您的解決方案運行良好。非常感謝。對於你在P.S.中的註釋。 :例如,當我使用'ciBuild jar'執行Gradle構建時,我不能直接調用'isDevBuild()'(但我不能在同一時間使用這兩個配置) - 儘管您表明我只能爲了教育目的而調用閉包。 –