2014-04-07 8 views
38

Ho letto oltre the docs e non ho trovato nulla che parli di ciò per cui è usato.Qual è lo scopo della dipendenza ridotta-pom.xml generato dal plugin per lo schermo?

+1

Non è relativamente chiaro nel documento Mojo: http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#createDependencyReducedPom? – Tome

+5

No, non c'è niente lì dentro riguardo al suo scopo. – Transcendence

+5

Beh, se si dispone di un modulo A con dipendenze X, e ombra alcuni di loro in un barattolo specifica (A-shaded.jar), allora non avrete bisogno quelle dipendenze ombreggiate se si vuole dipendere da A-shaded.jar invece di A.jar. Quindi il plugin crea un pom.xml contenente solo le dipendenze Y non ombreggiate. – Tome

risposta

28

L'ombra: ombra Mojo è abbastanza ben documentato, qui in particolare sul parametro createDependencyReducedPom, che creerà che dependency-reduced-pom.xml lima: maven-shade-plugin/shade-mojo.html#createDependencyReducedPom

In breve, questo è molto utile se si intende utilizzare quel vaso ombreggiata (invece del normale JAR) come dipendenza per un altro modulo. Che dependency-reduced-pom.xml non contenga i JAR già presenti in quello ombreggiato, evitando duplicazioni inutili.

+14

Non sono sicuro di essere d'accordo sul fatto che qualcosa di mvn sia ben documentato, la tecnologia è intrinsecamente difficile da capire. Sarebbe utile capire come usare la dipendenza ridotta-pom.xml. Dove e come dovrebbe essere usato. –

+1

Sopra, @ScottBoring chiede dove aggiungere l'impostazione. Va nel blocco di configurazione e c'è un esempio di quel blocco all'interno della definizione del plugin su [la pagina di utilizzo del plugin ombreggiatura maven] (https://maven.apache.org/plugins/maven-shade-plugin/usage.html) . –

+4

Ma come, quando si dipende dal barattolo ombreggiato, si ottiene di usare invece la drp? – OrangeDog

6

Ho letto lo docs circa un centinaio di volte e ancora non riuscivo a capire a cosa servisse, a che serve davvero.

Infine, questo è quello che penso: diciamo che hai un progetto con le dipendenze A, B, C, D, E. Nel pom.xml devi configurare il plug-in dello schermo in modo tale che quando crea il uber-jar (chiamarlo foo.jar), include a, B, C nel barattolo ombreggiato ma per qualche motivo si decide di non includere D, E nel vaso ombreggiata, anche se il progetto dipende da loro - un caso in questione sono le dipendenze che sono necessari solo per il test (ad esempio qualsiasi dipendenza che ha uno scope di test e non è incluso nel barattolo ombreggiato). Il dependency-reduced-pom.xml definirà D, E in esso. L'idea è che se qualcuno vuole usare il foo.jardependency-reduced-pom.xml fornisce un suggerimento di qualche tipo che fate attenzione foo.jar manca dipendenze D, E in essa - uso a proprio rischio. Potresti quindi decidere di aggiungere esplicitamente D, E nel progetto che utilizzerà foo.jar.

Quindi il dependency-reduced-pom.xml è più simile a missing-dependencies.xml ed elenca le dipendenze che mancano nel uber-jar che viene emesso dal plug-in dello schermo.