2010-12-15 73 views
1

Je sais qu'il existe plusieurs problèmes connus avec le plugin M2eclipse et je suppose que c'est juste l'un d'entre eux. Espérons que quelqu'un est au courant d'une solution ou d'une solution de contournement.M2Eclipse ne peut pas trouver de dépendances lorsqu'il s'agit de projets dans le même espace de travail

Nous avons comme 30 projets dans notre espace de travail, mais pour plus de clarté laisse supposer il y a seulement 2: A en B.

B comprend A comme une dépendance dans le pom.xml de B. Le problème que nous avons est que dans eclipse les classes de A ne peuvent pas être trouvées, donc vous obtenez des erreurs de compilation. Cependant, si vous 'mvn install' A pour le déployer dans le référentiel local et le projet de fermeture A alors tout va bien; pas d'erreurs de compilation. Donc, si A existe dans le projet, M2Eclipse ne semble pas être capable de définir correctement le classpath dans eclipse.

Pour rendre les choses plus étranges, nous avons aussi le projet C qui dépend aussi (exactement de la même manière que B) sur le projet A mais ici nous n'avons pas d'erreurs de compilation. Nous ne pouvons rien identifier de différence significative entre le projet B ou C; comme dit, ils comprennent A de la même manière.

Merci pour votre aide, Stijn

post-scriptum J'utilise la version 0.10.2.20100623 du plugin

Répondre

2

RESOLU

enfin, après des heures angoissantes j'ai trouvé la cause. Je me concentrais sur les fichiers .classpath et .settings mais le problème se trouvait dans le fichier .project. Ce fichier dans le projet A était manquant après l'entrée dans le tag natures:

<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> 

Ajout de cette résolu les problèmes.

2

J'ai déjà rencontré ce comportement auparavant, et cela m'est déjà arrivé lorsque j'ai importé ou vérifié séparément les projets maven.

Condition préalable: assurez-vous que vous avez installé m2extras avant de vérifier un projet Maven multi-modules: update site

Première chose à faire: clic droit sur chaque projet et choisissez Maven -> Mise à jour la configuration du projet. Le plugin pourrait être assez intelligent pour détecter qu'il pourrait être en train de construire des références de projet entre les projets. Deuxième chose à essayer (si vos 30 projets sont tous sous-modules d'une racine): ce serait plus facile, car vous pourriez utiliser l'intégration SCM de m2eclipse pour faire un "Checkout as Maven Project ..." sur la racine pom. M2eclipse ferait un projet pour le superpom et pour chaque sous-module, avec des références de projet construites de manière appropriée.

Troisième chose à essayer: Je voudrais essayer de créer manuellement des références de projet dans les paramètres du projet de chaque projet pour refléter leurs interdépendances. Ce serait beaucoup de travail, et à moins de vérifier votre éclipse .project/.settings (eww), cela devrait être fait individuellement pour chaque copie de travail.

+0

Déjà +1 pour l'explication agréable et claire; Je n'ai en effet pas les extras installés, je vais le faire d'abord et ensuite aussi essayer votre deuxième suggestion (nous avons en effet un root pom). –

+0

Salut, j'ai mis à jour à m2eclipse v12 et a également installé les extras. J'ai importé tous les projets en important le pom parent. Malheureusement, cela n'a pas résolu le problème. Aussi l'étape 1 (mise à jour config) n'a pas aidé. La modification de org.eclipse.wst.common.component dans .settings (qui n'est pas dans svn bien sûr) était NA car le projet non référencé y était déjà correctement référencé.En regardant les dépendances de Maven du projet B cependant, je remarque que le projet A n'est pas inclus (mais d'autres projets que C sont). Je suppose que la cause (et la solution?) Réside ici mais je ne peux pas le voir ... –

+0

Si vous avez déjà assuré que la dépendance du projet B spécifie exactement GAV du projet A, alors je suggère d'utiliser le mvn- Le but d'analyse de dependency-plugin ou la vue de graphe de dépendances de l'éditeur de POM de m2eclipse comme prochain test d'odeur. –