2015-10-01 5 views

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ör

org.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ğı .

İlgili konular