ben satır eklemek gerekir. Bu çizginin tam olarak ne yaptığını merak ediyorum? Eclipse Luna'da Gradle eklentisini kullanıyorum. Bir Java projesinde, diğerine bağlı olan jar'ı yaratıyorum.Shadow Plugin Gradle: mergeServiceFiles() ne yapar?</p> <pre><code>shadowJar { mergeServiceFiles() } </code></pre> <p>Aksi kavanoz düzgün çalışmaz: Benim build.gradle dosyasında
5
A
cevap
1
Neden bu kodu kendi başınıza araştırmıyorsunuz? mergeServiceFiles
tam bildirildi here ile birlikte aşağıdaki şekilde uygulamasıdır:
/**
* Syntactic sugar for merging service files in JARs
* @return
*/
public ShadowJar mergeServiceFiles() {
try {
transform(ServiceFileTransformer.class);
} catch (IllegalAccessException e) {
} catch (InstantiationException e) {
}
return this;
}
bunu here tanımlanır ServiceFileTransfomer
kullanır görebileceğiniz gibi. onun Dokümanlar:
tek bir kaynak olarak META-INF/hizmet kaynaklarında girdileri ekler Kaynaklar transformatörorg.apache.maven.plugins.shade.resource.ServiceResourceTransformer.java
den Modifiye. Örneğin, birçok JAR'a yayılmış birkaç META-INF/services/org.apache.maven.project.ProjectBuilder kaynağı varsa, tek girişler tek bir META-INF/services/org.apache ile birleştirilmiş olacaktır. Gölgeleme işlemiyle elde edilen JAR içine paketlenmiş maven.project.ProjectBuilder kaynağı .