Maven n'ajoute pas classpath au projet Eclipse
j'ai un projet maven, que je travaille sur Eclipse.
j'utilise maven eclipse:eclipse pour générer le chemin de classe, mais ... il n'ajoute jamais le chemin de classe sur le projet eclipse. J'ai essayé le plugin maven-eclipse, j'ai essayé le plugin M2Eclipse, mais peu importe ce que je fais, Je ne peux pas obtenir les entrées classpath pour commencer à travailler. J'ai beaucoup d'erreurs de construction, même pensé que le maven construit l'oreille parfaitement.
des lignes directrices?Merci pour tout réponse!
mise à JOUR: Voici ma racine du classpath:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="core/src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="core/src/main/resources"/>
<classpathentry kind="src" path="client/src/main/java"/>
<classpathentry kind="src" path="client/src/main/resources"/>
<classpathentry kind="src" path="junit_server/src/main/java"/>
<classpathentry kind="src" path="initializer/src/main/java"/>
<classpathentry kind="src" path="initializer/src/main/webapp"/>
<classpathentry kind="src" path="site/src/main/webapp"/>
<classpathentry kind="src" path="core/src/test/java"/>
<classpathentry kind="src" path="core/src/test/resources"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry exported="true" kind="var" path="M2_REPO"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
UPDATE2: C'est mon .projet:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>coreisp_back</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
7 réponses
la configuration générée par le plugin Maven Eclipse n'est pas compatible avec m2e/m2eclipse. Si vous voulez utiliser Maven et Eclipse ensemble, votre meilleur cours est de supprimer toute modification à votre setup générée par le plugin Maven eclipse et d'utiliser m2e pour importer votre projet Maven.
- Mise à Eclipse Indigo ( 3.7 )
- Installer m2e plugin ( http://www.eclipse.org/m2e/download/ ).
- Utiliser Le Fichier->Importer->Existant Projets Maven
vous devez ajouter les dossiers source supplémentaires au pom.xml avec le build-helper-maven-plugin. Ensuite, exécutez
mvn eclipse:nettoyer eclipse:eclipse
par exemple ce pom.XML. .
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
<artifactId>artifact</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>artifact</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>client/src/main/java</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>client/src/main/resources</directory>
<targetPath>resources</targetPath>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
génère ceci .classpath
<classpath>
<classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
<classpathentry kind="src" path="client/src/main/java" including="**/*.java"/>
<classpathentry kind="src" path="client/src/main/resources" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>
assurez-vous que les dossiers Existent, si le chemin est incorrect ils ne seront pas ajoutés. Cherche ça dans le journal de bord.
[INFO] passer non existant resourceDirectory /tmp/artefact/src/main/resources
mon équipe a trouvé les plugins eclipse maven instables, optant pour créer toute notre configuration eclipse via maven.
ceci dépend de m2eclipse. Quand vous faites cela, toutes vos dépendances sont gérées par maven/m2eclipse, donc votre .chemin de classe devient très minime.
en terme d'architecture de projet, vous voulez un projet d'éclipse par pom maven. Chaque projet .classpath ne contient que les sources, JRE et Maven injection:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
(ajustez en fonction de vos sources).
je soupçonne que vos nombreuses erreurs proviennent d'entrées en double dans les dépendances parce que vous injecter manuellement (supplémentaires .classpath entries) et par maven.
vous voudrez aussi vérifier que la résolution de l'espace de travail local dans m2eclipse est activée (devrait être activée par défaut).
par défaut, les mvn installés ne sont pas importés dans eclipse automatiquement. Donc, après avoir lancé mvn, installez depuis l'invite de commande. Exécutez la commande suivante:
mvn eclipse: eclipse
importer tous les bocaux dans votre projet eclipse et mettra à jour le classpath.
vous devez exécuter la commande ci-dessus la première fois que vous ajoutez une nouvelle dépendance à votre POM et que vous faites une compilation ou une installation mvn.
en plus de la réponse la plus votée, vous pouvez toujours être laissé avec un projet cassé, pas de 'dépendances Maven' (Kepler) et pas de résolution classpath.
dans mon cas, mes paramètres de dépôt local maven.xml a été supprimé quand un sdk tiers mis à jour lui-même, après une eclipse de redémarrage a semblé effacer la référence à ces paramètres.fichier xml.
une fois que j'ai remis le fichier en place et que J'y ai fait référence dans Maven > Installations > Global Settings: /home/andy/.m2/paramètres.XML , le nettoyage de chaque projet lancé tout le nécessaire classpath résolution. juste le partage.
Pour moi, les fichiers résultants ressemblait:
.classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
.le projet
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>jemh-ao</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
un problème que je rencontre est qu'après avoir converti un projet en maven je dois effacer la Configuration D'exécution car la conversion ne met pas à jour la classpath pour configurer Maven-dependency classpaths.