./gradle tasks
列出了「一些」的任務。看着 http://gradle.org/docs/current/userguide/java_plugin.html有沒有列出的隱藏的。另外,其他插件不會有任務間依賴關係的漂亮圖形。有沒有辦法在Gradle中列出任務依賴關係?
有沒有辦法來
- 列表中的所有所有的插件與gradle這個
- 列表中的任務,他們依賴於(有點像Maven的
depenceny:tree
但任務)
./gradle tasks
列出了「一些」的任務。看着 http://gradle.org/docs/current/userguide/java_plugin.html有沒有列出的隱藏的。另外,其他插件不會有任務間依賴關係的漂亮圖形。有沒有辦法在Gradle中列出任務依賴關係?
有沒有辦法來
depenceny:tree
但任務)您可以使用--all標誌獲取更詳細的可用任務列表和任務依賴關係
gradle tasks --all
編輯:正如Radim在註釋中指出的那樣,該命令不報告依賴關係,對於gradle 3.3和更新的版本。
可以通過編程訪問任務圖使用Gradle.getTaskGraph()
gradle.getTaskGraph()僅向您顯示將在當前Gradle構建中執行的任務,並且此任務圖只在執行階段可用。 –
gradle這個--profile乾淨的構建
一旦完成,去建立/報告的構建腳本內檢驗/ profile文件夾並瀏覽.html文件。你會看到依賴關係解決方案和其他信息隨着時間的推移在一個不錯的HTML頁面。
該報告不包含有關任務之間的依賴關係的任何信息。它只是按順序列出在構建期間執行的所有任務。 – rwitzel
你可以嘗試com.dorongold.task-tree插件用簡單的用法:
gradle <task 1>...<task N> taskTree
不錯的插件,感謝提示 –
優秀的工具!謝謝! – landerlyoung
由於多項目的增長,標誌着我爲正確解決方案的增長有點unweildy聱牙
gradle tasks --all
相反,我有轉移到查看特定項目使其更容易
gradlew :full-httpproxy:tasks --all
其中'full-httpproxy'是我的項目(和典型的目錄)的名稱。
不過,我好奇如何列出在主/根項目任務,雖然這裏有一個突出的問題,以及
How to list all tasks for the master project only in gradle?
因爲這樣做似乎並不可能現在。
名單,他們依靠什麼任務的任務,(有點像Maven的 depenceny:樹但任務)此
你可以使用--dry-run
(或-m
)選項,可以列出所有任務爲了特定的命令執行,但不執行命令,例如
gradle assemble --dry-run
你可以找到更多here
你能堅持到這個您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
它似乎沒有列出任何地方從網上下載依賴關係的任務?運行任務清晰的下載東西,但不知道依賴是在哪裏......沒有辦法超載它? –
下載資源的行爲不綁定到專門的任務。 Gradle中的依賴項被添加到配置中。只要您(在您自己的任務實現中)或gradle(在其自己提供的任務中)引用此配置的文件,就會觸發解析機制。 –
這不會列出依賴關係,至少在Gradle 1.5或1.7中是這樣。它是否曾經這樣做過,還是這是一個不完整的答案? –