2010-12-10 13 views
0

Le projet (un fichier WAR standard avec Spring) est compilé et empaqueté correctement à partir de la ligne de commande via mvn package. J'ai également couru mvn eclipse:eclipse pour configurer le projet Eclipse. Maintenant, voici où commence l'étrangeté.Eclipse + Maven - JAR manquant dans l'exportation WAR

Le projet n'a aucune erreur dans Eclipse et toutes les dépendances du fichier pom.xml sont correctement référencées dans le fichier .classpath et dans le chemin de construction du projet dans Eclipse. Toutefois, si j'essaie d'exécuter le projet sur un serveur ou d'exporter le projet en tant que fichier WAR, il ne contient pas de fichier JAR, un fichier JAR interne personnalisé.

L'entrée pom.xml pour le depency du pot manquant ...

<dependency> 
    <groupId>com.mycompany</groupId> 
    <artifactId>lib_ourlib</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

fichier .classpath du projet montrant qu'il ressemble à aucune autre entrée ...

<classpath> 
    <classpathentry kind="src" path="src/main/java" including="**/*.java"/> 
    <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/> 
    <classpathentry kind="output" path="target/classes"/> 
    <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar"/> 
    <classpathentry kind="var" path="M2_REPO/com/mycompany/lib_ourlib/1.0-SNAPSHOT/lib_ourlib-1.0-SNAPSHOT.jar"/> 
    <classpathentry kind="var" path="M2_REPO/log4j/log4j/1_2_6/log4j-1_2_6.jar"/> 
    <classpathentry kind="var" path="M2_REPO/org/springframework/spring-aop/3.0.5.RELEASE/spring-aop-3.0.5.RELEASE.jar"/> 
    <!-- a lot of spring jars --> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
</classpath> 

Pourquoi Eclipse ramasserait-elle les pots de printemps, mais pas les nôtres? Existe-t-il une restriction à l'utilisation d'un SNAPSHOT par rapport à un RELEASE?

Répondre

3

Ok, après quelques heures je l'ai compris. L'ajout de fichiers JAR au build-path n'est pas suffisant. Vous devez également les ajouter en tant que dépendances J2EE sous les propriétés du projet dans Eclipse.

0

D'autre part, vous faites quelque chose de mal. Vous n'avez pas besoin du plugin maven-eclipse-du tout. Vous devriez aussi utiliser m2eclipse et m2extras. Assez gênant que ces deux ne soient pas regroupés en un seul site de mise à jour. Donc, installez l'extension WTP à partir de m2extras, et vous obtiendrez la configuration d'Eclipse WAR basée sur votre POM en l'enregistrant. C'est une règle d'or selon mon expérience avec maven + WTP, que vous ne devriez jamais toucher les dépendances dans l'éclipse, laissez juste m2 pour le générer pour vous. Le seul cas, lorsque vous avez besoin de l'ajuster est le cas des facettes du projet comme JPA et ainsi de suite.

+0

J'aurais dû mentionner que je convertissais un projet d'éclipse existant (je ne sais pas si cela fait une différence). Je suis encore un peu nouveau chez Maven et j'ai probablement aussi fait quelque chose de mal. Cela n'aide pas que je n'ai pas le contrôle sur mon environnement de développement qui est bloqué à Eclipse 3.4 et pas de plugins Maven du tout. –

+0

Pauvre toi. Passez à la version 3.6 et utilisez m2eclipse dès que possible. –