我继承了一个复杂的 gradle 构建系统。它工作得很好,但包含多个插件(java、groovy、antlr、jacoco、jetty 等)。我不知道如何完成某件事,所以我做了一个“./gradlewtasks --all”。事实证明,有一个“生成”任务完成了这一任务(它重新生成了基于 antlr 的代码)。很好,但是花了很长时间,我不知道。
生成的任务从哪里来?我可以使用什么 gradle 命令来找出该任务的来源?有一个自定义的antlr任务有一个“dependsOn”生成“,所以我认为它来自antlr插件,但很难说。
目前不可能找到给定插件的所有任务以及为给定任务指定插件。请查看文档- 任务和插件之间没有链接。
您可以尝试以下代码(可能容易出错):
import java.lang.reflect.Modifier
project.plugins.each { p ->
println "Plugin: ${p.getClass().name} "
p.getClass().declaredFields.findAll {
Modifier.isStatic(it.getModifiers()) &&
it.name.endsWith('_TASK_NAME') &&
it.type.simpleName.equals('String')
}.each {
println " -> ${it.get(p)}"
}
println '\n'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |