2011-06-30 6 views
0

J'ai un projet parent maven P avec deux modules fils A et B. A et B sont dans le dossier P. P a une section modules dans le pom.xml ressemblant à:maven eclipse: la cible eclipse génère un mauvais .classpath

<modules> 
    <module>A</module> 
    <module>B</module> 
</modules> 

A a (B et le même, sauf l'artefact):

<parent> 
    <groupId>some.group</groupId> 
    <artifactId>A</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <relativePath>../pom.xml</relativePath> 
</parent> 

Je fait une dépendent de B en ajoutant à un de pom.xml:

<dependencies> 
    <dependency> 
    <groupId>some.group</groupId> 
    <artifactId>B</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <type>jar</type> 
    <scope>compile</scope> 
    </dependency> 
</dependencies> 

Si je fais un mvn install sur P, alors tout ira bien. Cependant après avoir exécuté mvn eclipse:eclipse sur P, le produit fichier .classpath dans A est incorrect, et Eclipse ne peut pas résoudre les dépendances de B.

Le produit .classpath comprend:

<classpathentry kind="src" path="/B"/> 

place du fonctionnement

<classpathentry kind="var" path="M2_REPO/some/group/B/0.0.1-SNAPSHOT/B-0.0.1-SNAPSHOT.jar"/> 

Qu'est-ce qui pourrait ne pas fonctionner? Je vous remercie.

Répondre

2

Si vous définissez la propriété useProjectReferences sur false (avec -DuseProjectReferences = false), cela devrait fonctionner comme vous le souhaitez (la valeur par défaut est true). Voir les docs here

+0

Merci. C'est une solution de contournement comme il s'avère - la racine du problème est que j'ai A et B sous le répertoire P, tandis que la cible eclipse: eclipse génère la référence en tant que/B au lieu de/P/B. Peut-être que je devrais passer à une structure de projet à plat. – ron

+0

Note: recherche plus sur le problème, la structure plane est moins préférée. Nous pouvons donc nous en tenir aux références d'artefacts et à l'installation de mvn, ou peut-être utiliser le projet parent comme espace de travail et importer directement les enfants. Ou quelqu'un pourrait corriger la génération .classpath pour inclure correctement le chemin de l'enfant par rapport à l'espace de travail. – ron