web-dev-qa-db-fra.com

La dépendance-pom.xml réduite est-elle automatiquement utilisée à la place de pom.xml?

Est dependency-reduced-pom.xml créé par plugin d'ombrage Maven automatiquement utilisé dans les projets qui dépend de l'uberjar (au lieu de l'ordinaire pom.xml)?

Poser cette question après avoir lu un certain nombre de questions liées à la dépendance à la réduction de pom.xml et ne pas avoir trouvé la réponse:

Plugin d'ombrage Maven ajoutant dépendance-réduit-pom.xml au répertoire de base

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

Quel est le fichier `dependency-reduction-pom.xml` qui a été créé lors de l'appel de la commande de package maven?

25
Johnny

Le dependency-reduced-pom.xml est généré au moment de la construction dans ${basedir} du projet. Ce fichier est un fichier temporaire qui n'est utilisé que pour l'emballage dans le pot ombré. Citant la documentation de l'attribut createDependencyReducedPom :

Indiquez si vous souhaitez générer un POM simplifié pour l'artefact ombré. Si elle est définie sur true, les dépendances qui ont été incluses dans le JAR uber seront supprimées du <dependencies> section du POM généré. Le POM réduit sera nommé dependency-reduced-pom.xml et est stocké dans le même répertoire que l'artefact ombré . Sauf si vous spécifiez également dependencyReducedPomLocation, le plugin créera un fichier temporaire nommé dependency-reduced-pom.xml dans le projet basedir.

Pour être clair, après le maven-shade-plugin a couru:

  • votre POM initial restera inchangé;
  • un fichier temporaire que vous pouvez complètement ignorer nommé dependency-reduced-pom.xml aura été généré dans le dossier racine ( ceci est considéré comme un problème ouvert avec ce plugin );
  • l'artefact ombré contiendra votre POM initial inchangé à l'intérieur du META-INF répertoire et non le POM réduit (ce n'est pas vraiment important mais mieux le mentionner - il y avait un problème à ce sujet qui a été fermé automatiquement: MSHADE-36 );
  • le POM qui sera déployé est le POM réduit;
  • l'artefact ombré sera par défaut l'artefact principal du projet.
29
Tunaki