首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gradle:我如何列出某个插件引入的任务

gradle:我如何列出某个插件引入的任务
EN

Stack Overflow用户
提问于 2016-04-27 17:04:35
回答 2查看 8.4K关注 0票数 18

可能是一个简单的问题,但我找不到一种方法来列出build.gradle文件中应用的插件引入了哪些任务。因此,假设您的build.gradle是:

代码语言:javascript
复制
apply plugin: 'java'

有没有一种简单的方法来列出这个插件引入的所有任务?

PS:如果有几十个应用插件的混乱和大的构建文件,那就方便了。

PS2:我不是在问任务的依赖关系。我的问题不一样,也很清楚。我应用的每个插件都介绍了自己的一些任务(不管什么取决于什么)。问题是,首先哪些是新引入的任务?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-29 08:23:47

恐怕这是不可能的,因为它的性质是如何应用gradle插件。

如果您在瞧一瞧 at Plugin接口,您将看到它有一个apply(Project p)方法。插件的职责是配置一个项目--它可以添加特定的任务/配置/等等。例如,gradle JavaPlugin是无状态的,因此您无法从它获得任务。

想到的唯一解决方案是在插件应用之后得到不同的任务:

build.gradle

代码语言:javascript
复制
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

您可以使用这段代码并构建一个可接受的解决方案。

票数 15
EN

Stack Overflow用户

发布于 2022-09-14 18:00:35

在某些情况下,可以通过检查任务的组和名称来恢复特定插件的来源:

代码语言:javascript
复制
tasks.findAll { it.group == 'verification' && it.name.startsWith('jacoco') }.each { task ->
    println(task.name)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36896363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档