Différentes versions de Maven provoquent des bibliothèques supplémentaires à inclure dans le fichier WAR
Question
Je suis en train de construire un fichier de guerre à déployer sur un serveur tomcat en utilisant Maven, mais ont remarqué un comportement étrange lors de la construction de mon dossier de guerre:
Lors de l'exécution de la commande à partir du dossier de projet: mvn clean compile package -DskipTests
- Version Maven 3.0 produit un fichier de guerre 12.079MB (49 fichiers jar dans le dossier WEB-INF / lib)
- Version 3.0 beta1 Maven produit un fichier de guerre 8.7MB (31 jar fichiers dans le dossier WEB-INF / lib)
- Version Maven 2.11 produit un fichier de guerre 2.3MB (3 fichiers jar dans le dossier WEB-INF / lib)
Que peut-être à l'origine des fichiers jar supplémentaires à inclure dans le projet? On peut supposer qu'ils ne sont pas nécessaires comme la construction du projet en utilisant la version 2.11 a bien fonctionné dans le passé.
La solution
J'ai eu quelque chose de semblable me arriver. Voici ce qui est arrivé.
Dans Maven 2.x les versions des plugins sont définies par Maven lui-même. Dans Maven 3.x, il utilisera le « dernier » et vous donner un avertissement. Dans mon cas, en utilisant une version ultérieure du plug-in du compilateur causé quelques différences et une version ultérieure du plugin de dépendance peut générer d'autres différences.
Une fois que je mets explicitement toutes les versions de tous les plug-ins dans mon pom.xml (une meilleure pratique de toute façon), les incohérences a disparu.