通过插件块将Gradle插件应用于子项目和根项目

6
我有一个复合项目 gradle 配置,希望向所有子项目和根项目添加一个插件。阅读这里的文档似乎很容易:如果您有一个多项目构建,您可能希望将插件应用于构建中的一些或所有子项目,但不应用于根项目。 plugins {} 块的默认行为是立即解析并应用插件。但是,您可以使用 apply false 语法告诉 Gradle 不将插件应用于当前项目,然后在子项目块中使用 apply plugin:«plugin id»,或者在子项目构建脚本中使用 plugins {} 块。所以基本上文档说:对于只包括子项目,请应用false,不应用任何东西,则插件将应用于所有项目。

但是这对我不起作用,我必须在根项目build.gradle中定义插件,然后在所有子项目中重新应用它,这是个 bug 吗?

如果您需要将插件应用于所有项目,可以在根项目中使用allprojects { apply plugin: 'myplugin' } - Daniele
谢谢,这个可行...但是我从文档中并没有理解到,那么简单来说它说了什么?我哪里理解错了吗? - Michel Feinstein
好的(正如文档所说),默认行为是“应用”插件-因此您可以省略“apply true”,并且插件将被应用(如果您考虑一下,每当您将apply plugin:'java'应用于任何项目时,插件都会被应用)。 - Daniele
这难道不是我说过的吗?或者我太简洁了,留下了模棱两可的空间? - Michel Feinstein
此外,根据您自己的评论和文档,将不需要一个allprojects块。 - Michel Feinstein
显示剩余2条评论
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接