2012-05-02 45 views
82

./gradle tasksには、タスクの「一部」が表示されます。 http://gradle.org/docs/current/userguide/java_plugin.htmlには、リストされていない非表示のものがあります。また、他のプラグインには、タスク間の依存関係についての素晴らしいグラフがありません。Gradleにタスクの依存関係をリストする方法はありますか?

  1. リストへの道のGradle
  2. リストとすべてのプラグインのすべてのタスクの作業とどのようなタスクを、彼らは(のようなMavenのdepenceny:treeの一種が、仕事のため)に依存
があります

答えて

88

--allフラグを使用して、使用可能なタスクとタスクの依存関係の詳細なリストを取得することができます。

EDIT:このコマンドは、コメントの中でRadimに記載されているように、gradle 3.3以降の依存関係は報告しません。

+0

ウェブから依存関係をダウンロードするタスクはありません。タスクの日食を明確にダウンロードするが、その依存関係はどこにあるのかわからない...それを過負荷にする方法はありませんか? –

+2

リソースをダウンロードする動作は、専用タスクにバインドされません。 gradleの依存関係が構成に追加されます。この構成のファイルを参照すると(自分のタスクの実装では)、またはgradle(それ自身の提供されたタスクでは)が参照すると、解決メカニズムがトリガーされます。 –

+33

これは、少なくともGradle 1.5または1.7では依存関係をリストしていません。それは一度それをしたのですか、これは不完全な答えですか? –

7

あなたは、プログラムGradle.getTaskGraphを使用してビルドスクリプト()

+5

gradle.getTaskGraph()は現在のgradleビルドで実行されるタスクのみを表示し、このtaskGraphは実行フェーズでのみ利用可能です。 –

14

これが完了すると、構築するために行く--profileクリーンビルド

のGradle /レポートの中でそれを検査するタスクグラフにアクセスすることができます/ profileフォルダに移動し、.htmlファイルを参照します。依存関係の解決やその他の情報が、素敵なhtmlページに収められた時間とともに表示されます。

+7

レポートには、タスク間の依存関係に関する情報は含まれていません。ビルド中に実行されたすべてのタスクが順番にリストされます。 – rwitzel

12

あなたは、簡単な使用にcom.dorongold.task-treeプラグインを試すことができます。

gradle <task 1>...<task N> taskTree 
+3

良いプラグイン、ヒントありがとう –

+1

優れたツール!ありがとう! – landerlyoung

2

あなたのマルチが成長するにつれて、私は正しいものとしてマークソリューションは、私が持っている、その代わり

gradle tasks --all 

を読むことがビットunweildyとハード育ちます特定のプロジェクトを見てより簡単に見えるように移動しました。

ここで、 'full-httpproxy'は私のプロジェクトの名前(および典型的なディレクトリ)です。

私はそれが今可能ていないようやってHow to list all tasks for the master project only in gradle?

しかしここにかかわらず、マスター/ルートプロジェクトのタスクの一覧を表示し、優秀な疑問を持ってどのように好奇心だけでなく

ています。

16

リストタスクとどのようなタスクを、彼らが依存(のようなMavenの depencenyの並べ替え:ツリーが、タスクのため)このため

あなたは--dry-run(または-m)を使用することができますタスクを示しますオプション特定のコマンドのために順番に実行されますが、コマンドを実行しません。あなたはhere

6

詳細を見つけることができます

gradle assemble --dry-run 

あなたのbuild.gradleにこれを固執することができます:

gradle.taskGraph.whenReady {taskGraph -> 
    println "Found task graph: " + taskGraph 
    println "Found " + taskGraph.allTasks.size() + " tasks." 
    taskGraph.allTasks.forEach { task -> 
     println task 
     task.dependsOn.forEach { dep -> 
      println " - " + dep 
     } 
    } 
} 

その後のGradleであなたのタスクを実行します。

./gradlew build 

そして、あなたがこれを見るべきです:

Found task graph: [email protected] 
Found 19 tasks. 
task ':compileJava' 
    - task 'compileJava' input files 
task ':compileScala' 
    - task 'compileScala' input files 
    - compileJava 
task ':processResources' 
    - task 'processResources' input files 
task ':classes' 
    - [email protected] 
    - task 'classes' input files 
    - compileJava 
    - dirs 
    - compileScala 
    - processResources 
task ':jar' 
    - task 'jar' input files 
task ':assemble' 
    - task 'assemble' input files 
    - org.gradle.api.inter[email protected]5bad9616 
task ':compileTestJava' 
    - task 'compileTestJava' input files 
task ':compileTestScala' 
    - task 'compileTestScala' input files 
    - compileTestJava 
task ':processTestResources' 
    - task 'processTestResources' input files 
task ':testClasses' 
    - processTestResources 
    - task 'testClasses' input files 
    - compileTestScala 
    - [email protected] 
    - compileTestJava 
    - dirs 
task ':compileIntegrationTestJava' 
    - task 'compileIntegrationTestJava' input files 
task ':compileIntegrationTestScala' 
    - task 'compileIntegrationTestScala' input files 
    - compileIntegrationTestJava 
task ':processIntegrationTestResources' 
    - task 'processIntegrationTestResources' input files 
task ':integrationTestClasses' 
    - processIntegrationTestResources 
    - compileIntegrationTestJava 
    - [email protected] 
    - compileIntegrationTestScala 
    - dirs 
    - task 'integrationTestClasses' input files 
task ':composeUp' 
    - task 'composeUp' input files 
task ':integrationTest' 
    - task ':composeUp' 
    - task 'integrationTest' input files 
task ':test' 
    - task 'test' input files 
task ':check' 
    - task 'check' input files 
    - task ':test' 
    - task ':integrationTest' 
task ':build' 
    - task 'build' input files 
    - check 
    - assemble 
関連する問題