2009-01-08 8 views
3

J'ai le plugin m2eclipse installé et il n'y a pas de problème pour la synchronisation des dépendances de compilation qui apparaissent dans pom.xml.Synchronisation des dépendances du projet web maven -> eclipse

Maintenant, j'ajoute JPA + Hibernate (ou quoi que ce soit) dépendance que maven rattrape très bien lors de mvn jetty:run.

Le problème est, Eclipse ne fait pas. Donc, je ne reçois pas ces .jars supplémentaires déployés sur le tomcat référencé lorsque je lance l'application web d'eclipse.

Existe-t-il un moyen d'ajouter ce type de dépendances à Eclipse? Je n'aime pas vraiment l'idée de modifier manuellement org.eclipse.wst.common.component.

Répondre

9

J'ai constaté que chaque fois que vous mettez à jour le POM d'un projet, il est utile de relancer m2eclipse ou il ne verra pas les nouvelles dépendances externes.

Si vous n'avez pas essayé de l'exécuter depuis que vous avez ajouté vos nouvelles dépendances (JPA + Hibernate ou autre) à votre POM, essayez-le et voyez si cela fonctionne. Veuillez noter qu'après avoir exécuté ceci, vous devrez probablement actualiser vos projets Eclipse pour que les modifications soient prises en compte.

Il n'est peut-être pas nécessaire que tous ces arguments fonctionnent, mais je les ai en quelque sorte tous ajoutés à un moment donné, juste pour être sûr. Vous pouvez modifier la liste des arguments pour l'obtenir au point que cela fonctionne pour vous. Cela pourrait vous faire perdre certaines de vos préférences Eclipse pour votre projet. Nous espérons donc avoir tout ce qu'il faut pour reconstruire votre projet déjà dans votre POM. Par exemple, j'ai un tas de choses supplémentaires dans un de mes POMs pour m'assurer que des choses comme springnature et springbuilder sont ajoutées à mon projet eclipse quand maven est utilisé pour reconstruire le projet eclipse.

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-eclipse-plugin</artifactId> 
     <configuration> 
     <additionalProjectnatures> 
      <projectnature> 
      org.springframework.ide.eclipse.core.springnature 
      </projectnature> 
      <projectnature> 
      org.eclipse.wst.common.project.facet.core.nature 
      </projectnature> 
      <projectnature> 
      org.eclipse.wst.common.modulecore.ModuleCoreNature 
      </projectnature> 
      <projectnature> 
      org.eclipse.jem.workbench.JavaEMFNature 
      </projectnature> 
     </additionalProjectnatures> 
     <additionalBuildcommands> 
      <buildcommand> 
      org.eclipse.wst.common.project.facet.core.builder 
      </buildcommand> 
      <buildcommand> 
      org.eclipse.wst.validation.validationbuilder 
      </buildcommand> 
      <buildcommand> 
      org.springframework.ide.eclipse.core.springbuilder 
      </buildcommand> 
     </additionalBuildcommands> 
     <wtpversion>1.5</wtpversion> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

Ce dernier bit a été ajouté à titre d'avertissement! Je détesterais que quelqu'un prenne un projet Eclipse en état de marche et détruise une partie de la configuration s'il n'était pas déjà préparé aux conséquences de l'exécution des commandes eclipse: *.

+0

Merci. Que voulez-vous dire par «re run m2eclipse»? Pour l'instant je suis parti avec mvn eclipse: eclipse -Dwtpversion = 2.0 mais je veux vraiment avoir une meilleure compréhension du sujet. – yanchenko

+0

Merci pour le montage, il m'a fondamentalement fourni une direction: créer un projet eclipse, personnaliser toutes ses 'natures'. Créer une éclipse mvn vide: éclipse proj. Diff dans pom.xml pour que mvn eclipse: eclipse génère exactement le même tas de fichiers de configuration eclipse. Moche cependant. – yanchenko

+0

Yup! Exactement. C'est très moche. Nous avons essayé quelques plugins Maven et c'était le "meilleur", mais c'est définitivement un PITA. Dans certaines installations (la mienne en particulier), il peut perdre les dépendances du module J2EE et demande un peu de travail pour le publier correctement. J'espère que vous ne rencontrez pas cela. –

0

J'ai trouvé une autre solution. Dans mon cas, il y a WAR qui dépend de certains JARs. Certains fichiers JAR proviennent de projets dépendants (et ils sont déployés), d'autres sont simplement des dépendances (hibernation, printemps, etc.).

J'ai passé quelques heures à essayer de déterminer pourquoi les fichiers JAR issus de projets dépendants sont déployés et d'autres non.

Ma solution était pour créer le dossier WEB-INF/lib dans mon projet WAR! Habituellement, vous n'en avez pas besoin, car Maven2 crée cette lib pendant la phase du paquetage. En éclipse, c'est nécessaire.

Mon Eclipse est 3.6M4 et m2eclipse est 0.9.9.200912160759.

Questions connexes