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

Java 通过插件块将Gradle插件应用于子项目和根项目,java,gradle,gradle-plugin,Java,Gradle,Gradle Plugin,我有一个多项目的gradle配置,我想在所有子项目和根项目中添加一个插件。阅读文档似乎很容易: 如果您有一个多项目构建,您可能希望将插件应用于构建中的部分或所有子项目,而不是根项目或主项目。plugins{}块的默认行为是立即解析和应用插件。但是,您可以使用apply false语法告诉Gradle不要将插件应用于当前项目,然后在子项目块中使用apply plugin:«plugin id»,或者在子项目构建脚本中使用plugins{}块 因此,基本上文档会说:Applyfalse只包含子项目,

我有一个多项目的gradle配置,我想在所有子项目和根项目中添加一个插件。阅读文档似乎很容易:

如果您有一个多项目构建,您可能希望将插件应用于构建中的部分或所有子项目,而不是根项目或主项目。plugins{}块的默认行为是立即解析和应用插件。但是,您可以使用apply false语法告诉Gradle不要将插件应用于当前项目,然后在子项目块中使用apply plugin:«plugin id»,或者在子项目构建脚本中使用plugins{}块

因此,基本上文档会说:Apply
false
只包含子项目,不应用任何东西,插件将应用于所有项目


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

它对我也不起作用。这似乎是一个已知的限制,尽管我找不到有关这方面的最新信息。看看这个(2岁)答案:

如果你需要将插件应用到所有项目,你可以在根项目中使用
allprojects{apply plugin:'myplugin'}
,谢谢,这很有效……但是我从文档中了解到,简而言之,它说了什么?我弄错了什么?好像是
apply false
,插件是“导入的”,但没有应用到根项目。然后可以显式地将其应用于子项目(使用
apply plugin..
)是,使用
apply true
,还是根本不使用
apply
?我们可以从文档中推断插件将被“导入”,应用于根项目和所有子项目。。。。毕竟,
true
应该与
false
相反。好吧(正如文档所说),默认行为是
apply
插件-因此您可以省略
apply true
,然后应用插件(如果你想一想,这就是当你
将plugin:'java'
应用到任何项目时所发生的事情——插件被应用了)