可能是一个简单的问题,但我无法找到一种方法来列出在build.gradle文件中应用的插件引入的任务。 所以,假设你的build.gradle只是:
apply plugin: 'java'
有一种简单的方法可以让gradle列出该插件引入的所有任务吗?
PS:如果包含大量应用插件的凌乱和大型构建文件,这将会派上用场
PS2:我不是在询问任务的依赖性。我的问题不同而且很清楚。我申请的每个插件都引入了一些自己的任务(更别管取决于什么)。问题是首先是新引入的任务?
答案 0 :(得分:6)
我担心这是不可能的,因为应用gradle插件的性质。
如果您在Plugin
界面take a look,则会看到它有一个apply(Project p)
方法。插件的责任是配置一个项目 - 它可以添加特定的任务/配置等。例如,gradle JavaPlugin是无状态的,因此你无法从中获取任务。
想到的唯一解决方案是在应用插件后获得不同的任务:
<强>的build.gradle 强>
def tasksBefore = [], tasksAfter = []
project.tasks.each { tasksBefore.add(it.name) } // get all tasks
apply(plugin: 'idea') // apply plugin
project.tasks.each { tasksAfter.add(it.name) } // get all tasks
tasksAfter.removeAll(tasksBefore); // get the difference
println 'idea tasks: ' + tasksAfter;
这将打印由Idea插件添加的任务:
想法任务:[cleanIdea,cleanIdeaModule,cleanIdeaProject, cleanIdeaWorkspace,idea,ideaModule,ideaProject,ideaWorkspace]
您可以使用此代码进行一些操作并构建可接受的解决方案。
答案 1 :(得分:0)
gradle tasks -all - Displays all task list.
还使用--info运行gradle任务会显示有关正在执行的任务的更多详细信息。
gradle --info <taskname>
Example : gradle --info build
通过Gradle 6.7测试