可能是一个简单的问题,但我找不到一种方法来列出在build.gradle文件中应用的插件引入了哪些任务.所以,假设你的build.gradle很简单:
apply plugin: 'java'
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以使gradle列出该插件引入的所有任务?
PS:如果出现乱七八糟的大型构建文件以及数十个应用插件,那将会很方便
PS2:我不是在询问任务的依赖性.我的问题不同而且很清楚.我申请的每个插件都引入了一些自己的任务(更别管取决于什么).问题是首先是新引入的任务?
我担心这是不可能的,因为自然界如何应用gradle插件.
如果你看一下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;
Run Code Online (Sandbox Code Playgroud)
这将打印Idea插件添加的任务:
想法任务:[cleanIdea,cleanIdeaModule,cleanIdeaProject,cleanIdeaWorkspace,idea,ideaModule,ideaProject,ideaWorkspace]
您可以使用此代码进行一些操作并构建可接受的解决方案.
| 归档时间: |
|
| 查看次数: |
2960 次 |
| 最近记录: |