2017-09-14 19 views
2

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に削除すると、となります。

問題がありますか?あらかじめありがとうございます。

編集

doc

からプロジェクトとbuild.gradleファイルとの間に一対一の関係があります。

+2

あなたの 'build.gradle'はどこからでも' apply: 'checkstyle.gradle''を持っていますか?ビルドスクリプトはそれについてどのように知っていますか? – mkobit

+1

あなたは 'checkstyle.gradle'ファイルを@mkobitの方法で記述する必要があります。 'build.gradle'ファイルだけが自動的に解釈されます。タスクの作成は2番目のステップで、2番目と3番目のステップの間でプラグインが 'afterEvaluate'ハンドラを使用する場合に行われます。 *実行フェーズ*が始まる前にタスクが存在する必要がありますが、*設定フェーズ*中に、インスタンスではなく名前でタスクを識別する必要があります( 'dependsOn myTask'の代わりに' dependsOn 'myTask')。 –

+0

@mkobitありがとう、それは動作します。あなたはあなたのコメントを答えに入れられますか? – CoXier

答えて

2

他のスクリプトを適用していません。

build.gradleには、apply from: 'checkstyle.gradle'を追加する必要があります。

+0

'apply from'と' apply plugin'httpsの違いについての答えは次のとおりです://stackoverflow.com/questions/29378249/difference-apply-from-vs-apply-plugin – CoXier

関連する問題