J'ai relu les documents et je n'ai rien trouvé qui parle de son utilisation.
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.
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.