gradle build lifecycle
で数日間混乱しています。 Referは私に教えてくれるルートプロジェクトにタスクが見つかりません
グレードビルドには3つの明確な段階があります。
- 初期
- 設定
- 実行
は、第三のステップでタスクの作成ですか?もしそうなら、gradle
はどのようにしてtasks
をプロジェクトオブジェクトに見つけるのですか?
ここは例です。
rootporject
|----app
|----build.gradle
|----checkstyle.gradle
build.gradle
は通常通りです。 checkstyle.gradle
ファイルにはタスクがあります。ここにその内容があります。 ./gradlew -q tasks
後
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'
}
、何のタスクcheckstyle
はありません。
しかし、定義をbuild.gradle
に削除すると、となります。
問題がありますか?あらかじめありがとうございます。
編集
からプロジェクトとbuild.gradleファイルとの間に一対一の関係があります。
あなたの 'build.gradle'はどこからでも' apply: 'checkstyle.gradle''を持っていますか?ビルドスクリプトはそれについてどのように知っていますか? – mkobit
あなたは 'checkstyle.gradle'ファイルを@mkobitの方法で記述する必要があります。 'build.gradle'ファイルだけが自動的に解釈されます。タスクの作成は2番目のステップで、2番目と3番目のステップの間でプラグインが 'afterEvaluate'ハンドラを使用する場合に行われます。 *実行フェーズ*が始まる前にタスクが存在する必要がありますが、*設定フェーズ*中に、インスタンスではなく名前でタスクを識別する必要があります( 'dependsOn myTask'の代わりに' dependsOn 'myTask')。 –
@mkobitありがとう、それは動作します。あなたはあなたのコメントを答えに入れられますか? – CoXier