可能是一个简单的问题,但我找不到一种方法来列出build.gradle文件中应用的插件引入了哪些任务。因此,假设您的build.gradle是:
apply plugin: 'java'有没有一种简单的方法来列出这个插件引入的所有任务?
PS:如果有几十个应用插件的混乱和大的构建文件,那就方便了。
PS2:我不是在问任务的依赖关系。我的问题不一样,也很清楚。我应用的每个插件都介绍了自己的一些任务(不管什么取决于什么)。问题是,首先哪些是新引入的任务?
发布于 2016-04-29 08:23:47
恐怕这是不可能的,因为它的性质是如何应用gradle插件。
如果您在瞧一瞧 at Plugin接口,您将看到它有一个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
您可以使用这段代码并构建一个可接受的解决方案。
发布于 2022-09-14 18:00:35
在某些情况下,可以通过检查任务的组和名称来恢复特定插件的来源:
tasks.findAll { it.group == 'verification' && it.name.startsWith('jacoco') }.each { task ->
println(task.name)
}https://stackoverflow.com/questions/36896363
复制相似问题