2016-04-14 9 views
2

Bir gradle build'in birkaç alt modu vardır. Bazıları uygulanmış java eklentisine sahiptir, bazıları yoktur. Eklentiyi yalnızca uygulandığında yapılandırmaya çalışıyorum. Bunu yapmak için, benim üst düzey build.gradle dosyasında aşağıdakileri ekleyin: do 2. arasındaki fark nedirNe zaman plugins.withType (somePlugin) .whenPluginlendirildi

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

:

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

Ancak, ben de şu tarz fark withType(){} biçimindeki yapılandırmayı kullanıyorum ve withType().whenPluginAdded{} stilini ne zaman kullanırım?

cevap

1

whenPluginAdded()'u kullandığınızda, geçerli koleksiyona whenObjectAdded() çağrılır. withType() numaralı telefonu arayarak Closure kodunu ilettiğinizde, geçerli koleksiyona all() çağrılır ve bu da kopyalanan bir koleksiyonda whenObjectAdded() çağrılarını çağırır.

Bu nedenle, her iki yöntem de aynı şeyi yapar, ancak eski bir eklenti koleksiyonunun savunma kopyasını oluşturur.

+0

Bu yüzden eğer java eklentisini kodlama, java sürümü vb. Gibi şeyler belirleyerek yapılandırmak istersem, bu gerçekten bir fark yaratmaz. Doğru? –

+0

Gradle kaynaklarından anladığım kadarıyla herhangi bir fark yaratmıyor. – Michael

İlgili konular