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>
27
demandé sur djechlin 2011-08-16 02:18:17

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.

16
répondu Nicola Musatti 2011-08-16 13:01:14
7
répondu Alexander Pogrebnyak 2011-08-15 22:30:49

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.

6
répondu Stephen 2012-09-27 10:50:14

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).

1
répondu ptyx 2012-09-27 10:50:34

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.

1
répondu Gagan M 2013-07-06 13:23:04

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>
1
répondu Javahollic 2014-02-20 19:01:33

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.Eclipse Run Configuration classpath should show maven dependencies

1
répondu james_t 2016-02-23 21:19:18