Eclipse: problème d’assemblage de déploiement Web et de dépendances Maven

Eclipse: problème lié aux assemblys de déploiement Web et aux dépendances Maven

Problème

Dans Eclipse 3.5 ou version antérieure, afin de déployer les dépendances Maven dans le bon dossier «/WEB-INF/lib», vous devez configurer les dépendances via «Java EE Module Dependencies» et la mise à jour «.classpath» le fichier ressemblera à ceci:

Fichier: «.classpath», par dépendances du module Java EE…

...

   
     
   

...

Depuis Eclipse 3.6, les «Dépendances du module Java EE» sont remplacées par «Web Deployment Assembly», mais vous pouvez faire de même via les «Entrées de chemin de classe des projets référencés», cependant, il mettra à jour le fichier «.classpath» comme Suivant :

Fichier: «.classpath», par Web Deployment Assembly…

...

   
     
   

...

Malheureusement, la valeur par défaut(value=”../”) empêche le déploiement de toutes les dépendances de Maven.

Solution

Ce n'est pas un gros problème, vous pouvez toujours modifier manuellement les(value=”../”) en(value=”/WEB-INF/lib”), mais il sera remplacé à chaque fois que vous exécutez une compilation Maven. Pas de souci, il y a encore deux solutions:

1. Prise en charge WTP

Ignorez les paramètres «Entrées de chemin de classe des projets référencés», rendez plutôt le Maven compatible avec WTP 2.0

mvn eclipse:eclipse -Dwtpversion=2.0

Il générera un nouveau fichier nommé «org.eclipse.wst.common.component», sous le dossier «settings», voir une partie de ce fichier:

Fichier: «org.eclipse.wst.common.component», par WTP

...

  uses

...

Avec la prise en charge WTP, il aide à déployer correctement les dépendances Maven dans le dossier «/WEB-INF/lib».

2. plugin m2eclipse

Installez lem2eclipse, un plugin Eclipse pour intégrer Maven dans l'IDE Eclipse. Après l'installation, faites un clic droit sur le dossier du projet, sélectionnez «Maven» -> «Update Project Configuration», il mettra à jour le fichier «.classpath» en conséquence, voir un extrait

Fichier: «.classpath», par m2eclipse

...

  
    
  

...

Il aide également à déployer correctement les dépendances Maven.