2016-04-14 21 views
2

グラデルビルドには複数のサブモジュールがあります。それらの中には、Javaプラグインが適用されているものもあれば、そうでないものもあります。私はプラグインが適用されている場合にのみ設定しようとしています。これを行うために、私は私のトップレベルのbuild.gradleファイルに次の行を追加します。plugins.withType(somePlugin)を使用するタイミング.whenPluginAdded

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

しかし、私はまた、次のスタイルに気づいた:

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

行う2の違いは何ですか私はwithType(){}スタイルの設定を使用し、いつwithType().whenPluginAdded{}スタイルを使用しますか?

答えて

1

whenPluginAdded()を使用すると、現在のコレクションでwhenObjectAdded()が呼び出されます。 withType()に電話してClosureを渡すと、現在のコレクションでall()が呼び出され、そのコピーではコピーされたコレクションのwhenObjectAdded()が呼び出されます。

これらの方法はどちらも同じことですが、前者はプラグインコレクションの防御的なコピーを作成します。

+0

したがって、エンコーディング、Javaバージョンなどのようなものを指定してJavaプラグインを構成したいのであれば、実際には違いはありません。正しい? –

+0

私がGradleのソースから理解する限り、それは何の違いもありません。 – Michael

関連する問題