./gradle tasks
작업 중 “일부”를 나열합니다. http://gradle.org/docs/current/userguide/java_plugin.html을 보면
보이지 않는 숨겨진 것들이 있습니다. 또한 다른 플러그인에는 작업 간의 종속성에 대한 멋진 그래프가 없습니다.
방법이 있습니까
- gradle을 사용하여 모든 플러그인의 모든 작업을 나열하십시오.
- 작업과 그들이 의존하는 작업을 나열하십시오 (maven과 비슷
dependency:tree
하지만 작업을위한 것)
답변
–all 플래그를 사용하여 사용 가능한 작업 및 작업 종속성에 대한 자세한 목록을 얻을 수 있습니다.
gradle tasks --all
편집 : 의견에서 Radim이 지적한 것처럼이 명령은 gradle 3.3 이상에 대한 종속성을보고하지 않습니다 ( https://docs.gradle.org/3.3/release-notes.html#improved-performance-of-tasks- 보고서 ).
답변
작업과 그들이 의존하는 작업을 나열하십시오 (maven의 depenceny : tree와 같지만 작업을위한 것)
이를 위해 당신은 사용할 수 있습니다 --dry-run
-m
위해 특정 명령에 대해 실행되지만 명령을 실행하지 않는 작업을 나열 (또는 ) 옵션을
gradle assemble --dry-run
답변
간단한 사용법으로 com.dorongold.task-tree 플러그인을 사용해 볼 수 있습니다.
gradle <task 1>...<task N> taskTree
readme의 결과 예 :
gradle build taskTree
:build
+--- :assemble
| \--- :jar
| \--- :classes
| +--- :compileJava
| \--- :processResources
\--- :check
\--- :test
+--- :classes
| +--- :compileJava
| \--- :processResources
\--- :testClasses
+--- :compileTestJava
| \--- :classes
| +--- :compileJava
| \--- :processResources
\--- :processTestResources
답변
이것을 당신의 것으로 붙일 수 있습니다 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
}
}
}
또는 이것으로 build.gradle.kts
:
gradle.taskGraph.whenReady(closureOf<TaskExecutionGraph> {
println("Found task graph: $this")
println("Found " + allTasks.size + " tasks.")
allTasks.forEach { task ->
println(task)
task.dependsOn.forEach { dep ->
println(" - $dep")
}
}
})
그런 다음 gradle로 작업을 실행하십시오.
./gradlew build
그리고 당신은 이것을 볼 것입니다 :
Found task graph: org.gradle.execution.taskgraph.DefaultTaskGraphExecuter@36eb780c
Found 19 tasks.
task ':compileJava'
- task 'compileJava' input files
task ':compileScala'
- task 'compileScala' input files
- compileJava
task ':processResources'
- task 'processResources' input files
task ':classes'
- org.gradle.api.internal.tasks.DefaultTaskDependency@287a7782
- task 'classes' input files
- compileJava
- dirs
- compileScala
- processResources
task ':jar'
- task 'jar' input files
task ':assemble'
- task 'assemble' input files
- org.gradle.api.internal.artifacts.DefaultPublishArtifactSet$ArtifactsTaskDependency@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
- org.gradle.api.internal.tasks.DefaultTaskDependency@42c1fa08
- 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
- org.gradle.api.internal.tasks.DefaultTaskDependency@7c8aa0fe
- 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 tasks --all
하거나 시도 할 수 있습니다 .
그래프 Gradle을하고 Talaiot :
이 조사 : https://proandroiddev.com/graphs-gradle-and-talaiot-b0c02c50d2b1 블로그는 그래픽 작업 및 종속성을 볼 나열한다. 이것은 무료 오픈 Graphviz 도구 Gephi를 사용합니다 ( https://gephi.org/features/ )
gradle-task-tree : https://github.com/dorongold/gradle-task-tree 및
gradle-visteg : https://github.com/mmalohlava/gradle-visteg
-
gradle-visteg 플러그인 : 생성 된 파일은 Graphviz
dot
유틸리티 를 통해 사후 처리 할 수 있습니다 . -
예를 들어 , png 이미지는 다음과 같이 생성됩니다.
cd build/reports/; dot -Tpng ./visteg.dot -o ./visteg.dot.png
자세한 내용은 Graphviz 홈페이지 를 방문 하십시오.
실제로 작업을 실행하는 데 사용 된 작업 (예 🙂 build
은 다음을 사용하여 멋진 HTML 페이지에서 볼 수 있습니다--profile
옵션을
Gradle을 –profile 정리 빌드
이 작업이 완료되면 build / reports / profile 폴더로 이동하여 .html 파일을 찾으십시오. 좋은 html 페이지에서 시간이 지남에 따라 종속성 해결 및 기타 정보가 표시됩니다.
답변
프로그래밍 방식으로 작업 그래프에 액세스하여 Gradle.getTaskGraph ()를 사용하여 빌드 스크립트 내에서 작업 그래프를 검사 할 수 있습니다.
답변
다중 프로젝트가 커짐에 따라 내가 올바른 것으로 표시 한 솔루션은 약간 부실하고 읽기 어려워집니다
gradle tasks --all
대신 특정 프로젝트를 살펴 보는 것이 훨씬 쉬워졌습니다.
gradlew :full-httpproxy:tasks --all
여기서 ‘full-httpproxy’는 내 프로젝트 이름이며 일반적인 디렉토리입니다.
그러나 마스터 / 루트 프로젝트에 작업을 나열하는 방법이 궁금하고 여기에서도 눈에 띄는 질문이 있습니다.
마스터 프로젝트의 모든 작업을 gradle로만 나열하는 방법은 무엇입니까?
지금은 불가능한 것 같습니다.