web-dev-qa-db-fra.com

Quel est le but de la dépendance-réduite-pom.xml générée par le plugin d'ombre?

J'ai relu les documents et je n'ai rien trouvé qui parle de son utilisation.

57
Transcendence

L'ombre: l'ombre Mojo est assez bien documentée, ici en particulier sur le paramètre createDependencyReducedPom, qui créera ce dependency-reduced-pom.xml fichier: maven-shade-plugin/shade-mojo.html#createDependencyReducedPom

En bref, cela est très utile si vous avez l'intention d'utiliser ce JAR ombré (au lieu du JAR normal) comme dépendance pour un autre module. Cette dependency-reduced-pom.xml ne contiendra pas les fichiers JAR déjà présents dans l'ombre, évitant les doublons inutiles.

38
Tome

J'ai lu les docs une centaine de fois environ et je ne comprenais toujours pas à quoi cela sert, quel est vraiment le cas d'utilisation.

Enfin voici ce que je pense: disons que vous avez un projet avec les dépendances A, B, C, D, E. Dans le pom.xml vous configurez le plugin d'ombrage de telle manière que lorsqu'il crée l'uber-jar (appelez-le foo.jar), il inclut A, B, C dans le bocal ombré mais pour une raison quelconque, vous décidez de ne pas inclure D, E dans le bocal ombré même si votre projet en dépend - un cas d'espèce sont des dépendances qui ne sont nécessaires que pour test (par exemple, toute dépendance qui a un scope de test et n'est pas incluse dans le pot ombré). Le dependency-reduced-pom.xml y définira D, E. L'idée est que si quelqu'un veut utiliser foo.jar le dependency-reduced-pom.xml fournit un indice quelconque, méfiez-vous foo.jar il manque les dépendances D, E - utilisez à vos risques et périls. Vous pouvez alors décider d'ajouter explicitement D, E dans le projet qui utilisera foo.jar.

Alors le dependency-reduced-pom.xml ressemble plus à missing-dependencies.xml et répertorie les dépendances qui manquent dans le uber-jar qui est généré par le plugin d'ombre.

14
morpheus