70 votes

Différence entre les plugins maven ( assemblée-plugins , jar-plugins , ombragé-plugins)

Je suis un débutant dans maven et maintenant, je suis confus avec la différence entre ces plugins maven. Est ces tous de créer des fichiers jar? maintenant mes questions sont

  1. quelle est la différence entre le pot créé dans chacun des plugins.( assemblée plugin, jar-plugin, à l'ombre du plugin)

  2. Le but de chaque plugin. ( l'assemblée, jar du plugin, à l'ombre du plugin )

  3. Je sais que même sans spécifier l'un de ces plugins une fois le type de mvn package, il y aura un pot de sortie. Quelle est la différence de la sortie de pot sans ces plugins et la sortie de pot avec ces plugins?. TIA

99voto

secfree Points 1532
  1. maven-jar-plugin: Ce plugin offre la possibilité de construire et de signer des bocaux. Mais il compile les fichiers java sous src/main/java et /src/main/resources/. Elle ne comprend pas les dépendances des fichiers JAR.
  2. maven-assembly-plugin: Ce plugin extraits de tous dépendance des pots dans les matières premières classes, et un groupe ensemble. Il peut également être utilisé pour générer un fichier exécutable jar en spécifiant la classe principale. Il fonctionne en projet avec moins de dépendances seulement, pour les grands projets avec de nombreuses dépendances, il sera la cause de nom de la classe Java problème de conflit.
  3. maven-shade-plugin: Il regroupe toutes les dépendances dans un uber-jar. Il peut également être utilisé pour générer un fichier exécutable jar en spécifiant la classe principale. Ce plugin est particulièrement utile car il fusionne le contenu de certains fichiers au lieu de les écraser par la Relocalisation des Classes. Ceci est nécessaire quand il y a des fichiers de ressources qui ont le même nom dans les pots et le plugin tente de paquet de tous les fichiers de ressources.

Reporter: comparaison:plugin maven-jar,assemblée,à l'ombre

28voto

Arthur Noseda Points 1541

Jar du plugin

Voyons voir ce que la commande suivante peut dire.

mvn help:describe -Dplugin=org.apache.maven.plugins:maven-jar-plugin

Il dispose de 3 buts, help, jar et test-jar. Je crois que vous êtes surtout intéressé par l' jar objectif, qui, selon la description n'est le suivant:

Construire un POT de l'actuel projet.

Comme une note de côté, à l'exécution d' mvn help:effective-pom sur un projet avec d'emballage jeu d' jar, montre que ce plugin est configuré automatiquement et est exécuté au cours de l' package de phase.

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <executions>
      <execution>
        <id>default-jar</id>
        <phase>package</phase>
        <goals>
          <goal>jar</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Assemblée plugin

Ce on sert un but différent. Il dispose de 8 buts, mais 6 d'entre eux sont obsolètes. Donc, en dehors de l' help de l'objectif, ce qui nous laisse avec l' single de l'objectif.

mvn help:describe -Dplugin=org.apache.maven.plugins:maven-assembly-plugin

Assembler un bundle d'application ou de la distribution à partir d'un assemblage de descripteur. Cet objectif est adapté soit pour la liaison avec le cycle de vie ou en appelant directement à partir de la ligne de commande (à condition que tous les fichiers requis sont disponibles avant que la construction commence, ou sont produites par un autre but spécifié avant de celui-ci sur la ligne de commande).

Vous pouvez utiliser le montage plug-in lorsque vous voulez vous livrer plus que votre projet artefact (JAR, WAR, etc.), mais la configuration se passe dans un autre fichier.

L'ombre du plugin

La description de l'objectif principal qui est un peu décevant.

mvn help:describe -Dplugin=org.apache.maven.plugins:maven-shade-plugin

Mojo qui effectue l'ombrage de la délégation au Shader composant.

Vous voulons surtout l'utilisation de ce plugin si vous voulez produire un uber-pot, qui est votre artefact dans un BOCAL avec toutes ses dépendances transitives en elle.

Bref, si vous êtes la construction d'une bibliothèque, vous allez coller avec la valeur par défaut JAR du plugin. Si vous êtes à la construction d'une application, vous pouvez envisager d'utiliser l'ombre plugin, mais pour moi, c'est une sorte de rapide et sale. Si uber-pot n'est pas à votre goût ou la distribution ne peut pas s'adapter à l'intérieur d'un seul BOCAL (configuration externe, natif de dépendances, etc.) alors vous devriez aller pour l'assemblée plugin.

1voto

Shailesh Points 317

Maven jar du plugin crée simplement un des fichiers jar avec tous les fichiers SOURCE [.les fichiers de classe compilée à partir .fichiers java] emballés, mais un pot lui-même ne peut pas être déployé comme il y a beaucoup plus de dépendances comme 3ème partie fichiers jar ou une autre bibliothèque fichiers jar qui sont nécessaires pour exécuter SOURCE fichier jar. Cette où Maven assembly plugin est livré dans l'image, il crée un package d'une extension de votre choix comme .zip, .tar, .gz qui est un déploiement complet-possibilité de package avec toutes les dépendances paniers en elle. Vous pouvez également spécifier la structure du répertoire de l'assemblée plugin qui devrait être créée lorsqu'un package est déployé sur servir

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X