Ich habe die Dokumente gelesen und nichts gefunden, was darüber spricht, wofür es verwendet wird.
java
maven
maven-shade-plugin
Transzendenz
quelle
quelle
Antworten:
Der Schatten: Schatten Mojo ist ziemlich gut dokumentiert, insbesondere über den
createDependencyReducedPom
Parameter, der diesedependency-reduced-pom.xml
Datei erstellt:maven-shade-plugin/shade-mojo.html#createDependencyReducedPom
Kurz gesagt, dies ist sehr nützlich, wenn Sie diese schattierte JAR (anstelle der normalen JAR) als Abhängigkeit für ein anderes Modul verwenden möchten. Das
dependency-reduced-pom.xml
wird nicht enthält die JAR - Dateien bereits in dem schattigen ein, vermeiden unnötiges Doppel.quelle
Ich habe die Dokumente ungefähr hundert Mal gelesen und konnte immer noch nicht verstehen, wofür das ist, was wirklich der Anwendungsfall dafür ist.
Schließlich denke ich Folgendes: Nehmen wir an, Sie haben ein Projekt mit den Abhängigkeiten A, B, C, D, E. In
pom.xml
konfigurieren Sie das Shade-Plugin so, dass es beim Erstellen des Uber-Jars (nennen Sie esfoo.jar
) es erstellt schließt A, B, C in das schattierte Glas ein, aber aus irgendeinem Grund entscheiden Sie sich, D, E nicht in das schattierte Glas aufzunehmen, obwohl Ihr Projekt davon abhängt - ein typisches Beispiel sind Abhängigkeiten, die nur zum Testen benötigt werden (z. B. Abhängigkeiten) das hat einscope
vontest
und ist nicht im schattierten Glas enthalten). Dasdependency-reduced-pom.xml
wird D, E darin definieren. Die Idee ist , dass , wenn jemand will , verwenden ,foo.jar
diedependency-reduced-pom.xml
einen Hinweis auf eine Art , dass Vorsichtfoo.jar
ist Abhängigkeiten D, E in es fehlt - Benutzung auf eigene Gefahr. Sie können dann entscheiden, D, E explizit in das zu verwendende Projekt einzufügenfoo.jar
.Das
dependency-reduced-pom.xml
ist also eher somissing-dependencies.xml
und listet die Abhängigkeiten auf, die im Uber-Jar fehlen, das vom Shade-Plugin ausgegeben wird.quelle