Ich habe die Dokumente gelesen und nichts gefunden, was darüber spricht, wofür es verwendet wird.
Ich habe die Dokumente gelesen und nichts gefunden, was darüber spricht, wofür es verwendet wird.
Antworten:
Der Schatten: Schatten Mojo ist ziemlich gut dokumentiert, insbesondere über den createDependencyReducedPom
Parameter, der diese dependency-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.
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 es foo.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 ein scope
von test
und ist nicht im schattierten Glas enthalten). Das dependency-reduced-pom.xml
wird D, E darin definieren. Die Idee ist , dass , wenn jemand will , verwenden , foo.jar
die dependency-reduced-pom.xml
einen Hinweis auf eine Art , dass Vorsicht foo.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 so missing-dependencies.xml
und listet die Abhängigkeiten auf, die im Uber-Jar fehlen, das vom Shade-Plugin ausgegeben wird.