我很困惑gradle build lifecycle
幾天。 Refer告訴我任務未在根項目中找到
Gradle構建有三個不同的階段。
- 初始化
- 配置
- 執行
在第三步創建任務?如果是這樣,gradle
如何在項目對象中找到所有tasks
?
這裏是一個例子。
rootporject
|----app
|----build.gradle
|----checkstyle.gradle
build.gradle
就像平常一樣簡單。 checkstyle.gradle
文件有一個任務。這裏是它的內容。
apply plugin: 'checkstyle'
task checkstyle(type:Checkstyle) {
description 'Runs Checkstyle inspection against girl sourcesets.'
group = 'Code Quality'
configFile rootProject.file('checkstyle.xml')
ignoreFailures = false
showViolations true
classpath = files()
source 'src/main/java'
}
./gradlew -q tasks
後,沒有任務checkstyle
。
但是,如果我刪除定義到build.gradle
,我得到它。
有什麼不對嗎?提前致謝。
編輯
從doc
有一個項目和文件的build.gradle之間有一個一對一的關係。
您的'build.gradle'是否適用於:'checkstyle.gradle''中的任何位置?構建腳本如何知道它? – mkobit
您需要按照@mkobit描述的方式包含您的'checkstyle.gradle'文件。只有'build.gradle'文件會被自動解釋。在第二步中創建任務,或者,如果插件在第二步和第三步之間使用'afterEvaluate'處理程序。在*執行階段*開始之前,任務必須存在,但在*配置階段*中,您可能需要通過名稱而不是實例來識別任務('dependsOn'myTask''而不是'dependsOn myTask')。 –
@mkobit非常感謝,它的工作原理。你可以把你的評論回答? – CoXier