Question

Pas un très bon titre, je vais essayer de vous expliquer.

a travaillé pendant des mois, puis aujourd'hui pour une raison inconnue, l'éclipse ne peux pas résoudre aucun des importations en provenance de frères et sœurs (projets de pairs), alors que rien n'a changé (vraiment!). Aucune éclipse ou plugin Eclipse mises à jour, aucune modification de code source, aucun changement de configuration.

J'ai une structure de projet assez standard:

parent_project
-- clild_project_a
---- pom.xml
-- clild_project_b
---- pom.xml
-- child_project_c
---- pom.xml
-- pom.xml (for parent).

Maintenant, les deux projets a et b dépendent du code de c.

projeter une pom.xml.

  <parent>
    <artifactId>parent_project</artifactId>
    <groupId>com.mydomain.ge</groupId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  ...
  <dependencies>  
    <dependency>
        <groupId>com.mydomain.ge</groupId>
        <artifactId>child_project_c</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>

et dans le pom.xml parent:

  <modules>
    <module>child_project_a</module>
    <module>child_project_b</module>
    <module>child_project_c</module>
  </modules>

Alors maintenant dans Eclipse, toutes les déclarations d'importation dans le projet dire l'importation du projet c:

package com.skillkash.ge.api;
import com.skillkash.ge.dao.AlreadyExistsException;

Cela donne:

The import com.skillkash.ge.dao.AlreadyExistsException cannot be resolved.

J'ai essayé le follwing:

  • faire un nettoyage maven (avec droit droit-> run AS-> maven clen sur tous les enfants et les parents.
  • faire une mise à jour de dépendances Maven sur tous les projets
  • faire un paquet de Maven sur chaque projet.
  • faire m2 maven -.> "Mettre à jour les configurations de projet" sur tous les projets
  • Eclipse redémarrage.
  • redémarrer l'ordinateur.

Note 1 , dans Eclipse, j'ai 4 projets distincts, un pour chaque enfant, et un pour le parent. les trois projets enfants sont également contrôlés dans SVN, mais je ne peux pas checkin facilement le projet parent car il a les dossiers de projet enfant en dessous.
NOTE 2 , je sais que beaucoup de fourmi, mais je suis un noob à maven, mais havent eu de problèmes avec elle jusqu'à présent. par exemple. Ive aucune idée si Maven est dit éclipse d'utiliser la source du projet depentant, ou si elle doit compiler jar constamment dans le dépôt local de m2, et les utilisations du projet dépendants.
NOTE 3 , tous les autres dépendances (externes) sont ok.
NOTE 4 , Ive vérifié que "Résolution des dépendances de projets Espace de travail" est cochée.
NOTE 5 , dans le dialogue de chemin de compilation java ecipse, les projets de leurs pairs, dont elle dépend ne semble pas être dans les deux « source », « projets » ou « bibliothèques » onglets. Les bibliothèques ont un sous-arbre « maven de depedencies », mais sous thare ne sont que des pots externes comme log4j.

Était-ce utile?

La solution

Est-ce que ça marche si vous faites un mvn clean install sur la pom-mère de la ligne de commande au lieu de l'éclipse? Cela écartera deux choses:

  1. Si oui ou non il est un problème d'éclipse
  2. Si oui ou non votre problème doit faire avec vous en utilisant package au lieu de install

Je remarqué que vous utilisiez l'objectif de package Maven. En général, vous devriez toujours faire mvm clean install au lieu de mvn clean package pour le travail sur votre machine locale. Si vous n'utilisez pas l'installation objectif, puis du projet C n'est installé sur votre référentiel local (par défaut $ HOME / .m2 / dépôt ou équiv sous Windows) et ne sera donc pas en mesure d'être référencé par les projets A et B.

A défaut, aller à l'intérieur de votre $ HOME / .m2 / dépôt et vérifiez la .jar / .pom réelle installé pour le projet c. Il chemin du répertoire de correspondra à sa coordonnées Maven (par exemple com / mydomain / ge / child_project_c / 0.0.1-snapshot). Assurez-vous que le pot a les classes que vous attendez à l'intérieur de celui-ci et assurez-vous que la pom installée à côté il ressemble à celui de votre référentiel source.

Autres conseils

Impossible faire un commentaire encore, mais ne devrait pas m2eclipse projets d'espace de travail de résolution au lieu de les installer dans le référentiel local et de les résoudre à partir de là?

J'ai découvert que mvn est assez pointilleux sur ce qui est écrit dans les build.properties! Je fait face au même problème et a dû prendre soin que

  1. Les deux source.. = src/ et output.. = bin/ sont correctement saisies.
  2. bin.includes = META-INF,/ et . sont entrés correctement.

Après avoir fixé cela, mvn installation propre n'a pas fonctionné comme un charme! @whaley, merci pour l'astuce avec $HOME/.m2/repository fait, il m'a amené à voir les fichiers étaient vraiment manquants dans le pot, en raison des raisons mentionnées ci-dessus!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top