./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中是这样。它是否曾经这样做过,还是这是一个不完整的答案? –