2015-10-01 17 views

Odpowiedz

1

Dlaczego nie zbadacie go w kodzie samodzielnie? mergeServiceFiles deklaruje dokładnie here a jego realizacja jest następujący:

/** 
* Syntactic sugar for merging service files in JARs 
* @return 
*/ 
public ShadowJar mergeServiceFiles() { 
    try { 
     transform(ServiceFileTransformer.class); 
    } catch (IllegalAccessException e) { 
    } catch (InstantiationException e) { 
    } 
    return this; 
} 

Jak widać używa ServiceFileTransfomer który jest zdefiniowany here. Z jego dokumentów:

Modified od org.apache.maven.plugins.shade.resource.ServiceResourceTransformer.java

transformatora zasobów, które dołącza wpisy w META-INF/zasobów usług w jeden zasób. Na przykład, jeśli istnieje kilka zasobów META-INF/services/org.apache.maven.project.ProjectBuilder rozmieszczonych w wielu plikach JAR, poszczególne wpisy będą połączone w jeden obiekt META-INF/services/org.apache. maven.project.ProjectBuilder resource zapakowany w wynikowy plik JAR wygenerowany przez proces cieniowania.