Gradle 何时使用插件。withType(somePlugin)。何时使用插件

Gradle 何时使用插件。withType(somePlugin)。何时使用插件,gradle,gradle-plugin,Gradle,Gradle Plugin,渐变构建有几个子模块。有些应用了java插件,有些没有。我试图只在应用插件时配置插件。为此,我在顶级build.gradle文件中添加了以下内容: allprojects { plugins.withType(JavaPlugin) { //some configuration on the JavaPlugin } } 然而,我也注意到了以下风格: allprojects { plugins.withType(JavaPlugin).whenPluginAdded {

渐变构建有几个子模块。有些应用了java插件,有些没有。我试图只在应用插件时配置插件。为此,我在顶级build.gradle文件中添加了以下内容:

allprojects {
  plugins.withType(JavaPlugin) {
    //some configuration on the JavaPlugin
  }
}
然而,我也注意到了以下风格:

allprojects {
  plugins.withType(JavaPlugin).whenPluginAdded {
    //some configuration on the JavaPlugin
  }
}

这两个有什么区别。什么时候使用
withType(){}
-样式配置,什么时候使用
withType()。whenPluginAdded{}
-样式?

当使用
whenPluginAdded()
时,它调用当前集合上的
whenObjectAdded()
。当您调用
withType()
并传递一个
闭包
时,它会对当前集合调用
all()
,而当前集合又会对复制的集合调用
whenObjectAdded()


因此,这两种方法的作用是相同的,但前者是插件集合的防御副本。

因此,如果我想通过指定编码、java版本等来配置java插件,这实际上没有什么区别。对吗?据我从Gradle的资料中了解,这没什么区别。