J'ai un projet
A/
|--a1
|--a2
Maintenant, il y a un autre projet dans notre organisation
B/
|--b1
|--b2
|--b3
(Chaque module a1, b1 etc. et les projets parents A, B ont leur propre pom.xml selon les règles maven standard des parents et des enfants)
Les deux projets sont extraits sur mon éclipse locale (de SVN). Je travaille activement sur A.
J'ai appris qu'il existe une bonne fonctionnalité commune (b4) développée en B et que je devais l'utiliser.
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
Les développeurs de b4 ont déployé ce module b4 comme un artefact dans le référentiel de notre organisation. J'ai inclus la dépendance au POM de mon module, c'est-à-dire le pom.xml de a2. Eclipse a téléchargé l'artefact requis depuis le dépôt et j'ai pu y importer les classes.
Maintenant, le problème commence ... Je devais vérifier le code source de b4 dans un but précis et comme j'avais déjà vérifié B sur mon éclipse locale, je l'ai mis à jour depuis SVN et extrait le module b4. J'ai également exécuté pom.xml du module b4 avec des cibles telles que clean, package etc. Après un certain temps, lorsque j'ai terminé mon codage, j'avais besoin de créer un JAR de mon module a2. J'ai couru "package" sur pom.xml et BAM de a2 !! erreurs n erreurs pour le module a2. Ces erreurs n'étaient pas non plus très conviviales. La seule chose est qu'il y avait certainement le nom de b4 dans les journaux.
Solution: Après avoir essayé de nombreuses solutions pendant de nombreuses heures, j'ai exécuté "mvn -U clean install" à partir de la console dans la direction du projet de mon B (c'est-à-dire dans ../codebase/B). Comme B est le parent, la commande clean install s'est exécutée pour tous les modules, y compris b4, et s'est exécutée avec succès. Après cela, j'ai exécuté "mvn -U clean install" pour mon projet parent qui est A. Et cela a fonctionné! le module a2 a été compilé, installé, (empaqueté plus tard) avec succès.
Ici, le point important était que si b4 est dans votre espace de travail, n'installez pas seulement b4. Vous devrez nettoyer l'installation complète B. Je suis venu à cette solution après avoir lu la réponse de Zuill
EDIT: Encore une chose ici pour noter que si je n'avais pas fait vérifier le projet B dans l'environnement local, alors ce problème ne se serait peut-être pas produit pour moi. J'ai tendance à penser que cela s'est produit car j'ai fait vérifier B dans mon espace de travail local.