在Gradle实际执行任务之前,有没有办法打印任务图?

在Gradle实际执行任务之前,有没有办法打印任务图?,gradle,task,Gradle,Task,不完全是一个新手,但我试着更深入地挖掘,更好地理解。。。我只是觉得这样做可能是个好主意。接口提供了一种方法(从文档中): 返回执行计划中包含的任务。任务按执行顺序返回 此方法的输出似乎可用于打印任务图。接口提供了方法(来自文档): 返回执行计划中包含的任务。任务按执行顺序返回 此方法的输出似乎可用于打印任务图。多亏了Opal,我做到了: gradle.taskGraph.whenReady {taskGraph -> println "Tasks" taskGraph.ge

不完全是一个新手,但我试着更深入地挖掘,更好地理解。。。我只是觉得这样做可能是个好主意。

接口提供了一种方法(从文档中):

返回执行计划中包含的任务。任务按执行顺序返回

此方法的输出似乎可用于打印任务图。

接口提供了方法(来自文档):

返回执行计划中包含的任务。任务按执行顺序返回


此方法的输出似乎可用于打印任务图。

多亏了Opal,我做到了:

gradle.taskGraph.whenReady {taskGraph ->
    println "Tasks"
    taskGraph.getAllTasks().eachWithIndex{ task, n ->
        println "${n + 1} $task"
        task.dependsOn.eachWithIndex{ depObj, m ->
            println "  ${ m + 1 } $depObj"
        }
    }
} 
Java构建的输出:

Tasks
1 task ':compileJava'
2 task ':processResources'
3 task ':classes'
  1 compileJava
  2 dirs
  3 processResources
4 task ':jar'
5 task ':assemble'
  1 org.gradle.api.internal.artifacts.DefaultPublishArtifactSet$ArtifactsTaskDependency@48db7705
6 task ':compileTestJava'
7 task ':processTestResources'
8 task ':testClasses'
  1 processTestResources
  2 dirs
  3 compileTestJava
9 task ':test'
10 task ':check'
  1 value: task ':test'
11 task ':build'
  1 check
  2 assemble
对我来说,作为一个刚毕业的新手(一个新手),这太棒了!虽然这让我有点困惑:

1) “build”只依赖于“check”和“assembly”,它们各有一个依赖项,每个都没有依赖项。那么,它如何知道运行所有其他任务(显然它必须)。。。我一定错过了什么

2) 什么是依赖关系“dirs”和“org.gradle.api.internal.artifacts.DefaultPublishArtifactSet”$ArtifactsTaskDependency@48db7705"? 更重要的是,这些东西究竟来自哪里
getDependsOn()
返回一个
Set
,因此这些可能不是
Task
s


大量的调查…

多亏了蛋白石,我做到了:

gradle.taskGraph.whenReady {taskGraph ->
    println "Tasks"
    taskGraph.getAllTasks().eachWithIndex{ task, n ->
        println "${n + 1} $task"
        task.dependsOn.eachWithIndex{ depObj, m ->
            println "  ${ m + 1 } $depObj"
        }
    }
} 
Java构建的输出:

Tasks
1 task ':compileJava'
2 task ':processResources'
3 task ':classes'
  1 compileJava
  2 dirs
  3 processResources
4 task ':jar'
5 task ':assemble'
  1 org.gradle.api.internal.artifacts.DefaultPublishArtifactSet$ArtifactsTaskDependency@48db7705
6 task ':compileTestJava'
7 task ':processTestResources'
8 task ':testClasses'
  1 processTestResources
  2 dirs
  3 compileTestJava
9 task ':test'
10 task ':check'
  1 value: task ':test'
11 task ':build'
  1 check
  2 assemble
对我来说,作为一个刚毕业的新手(一个新手),这太棒了!虽然这让我有点困惑:

1) “build”只依赖于“check”和“assembly”,它们各有一个依赖项,每个都没有依赖项。那么,它如何知道运行所有其他任务(显然它必须)。。。我一定错过了什么

2) 什么是依赖关系“dirs”和“org.gradle.api.internal.artifacts.DefaultPublishArtifactSet”$ArtifactsTaskDependency@48db7705"? 更重要的是,这些东西究竟来自哪里
getDependsOn()
返回一个
Set
,因此这些可能不是
Task
s

大量的调查…

可能正是蛋白石所描述的。
我写的,所以我可能有偏见,但我使用它很多,它对我来说很好 可能正是蛋白石在中描述的功能。
我写的,所以我可能有偏见,但我使用它很多,它对我来说很好。可能晚了,但你可以用它来构建:
assemble->jar->classes->compileJava->processResources
可能晚了,但你可以用它来构建:
assemble->jar->classes->compileJava->processResources