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