2010-04-01 4 views
3

J'ai un projet de printemps mvc en éclipse, et sa configuration à utiliser maven. Je peux résoudre toutes mes dépendances externes, mais maintenant je veux inclure un autre projet local dans mon espace de travail. Normalement, je le ferais par le biais du chemin de construction java, et j'ajouterais une référence de projet. Mais si je le fais manuellement, m2eclipse supprime juste ces références de mon fichier classpath.m2eclipse et WTP et l'ajout de source de projet local

Je suppose que c'est parce que maven veut gérer toutes les dépendances. J'autorise donc la gestion des dépendances sur le projet local (les fichiers sources que je veux inclure), et maintenant quand j'ajoute des dépendances, ce projet apparaît, et il l'ajoute en tant que type jar (ce qui est correct). J'ai également lancé maven-package pour créer un instantané du projet source. Mais le jar n'est jamais ajouté dans la liste des bibliothèques maven, et le projet ne se construit pas car il ne trouve pas les classes.

Qu'est-ce que je fais mal? Merci pour l'aide!

Répondre

0

Vous devez probablement ajouter le projet local (avec son artefact pom.xml) comme dépendance dans le fichier pom.xml du projet WTP, et activer la résolution de dépendance de l'espace de travail?

2

La configuration des projets Maven dans Eclipse est dérivé par m2eclipse à partir des métadonnées contenues dans les POMs donc si vous avez deux projets, ProjectA et ProjectB, et vous voulez avoir ProjectB comme dépendance de ProjectA, vous devez déclarer ProjectB comme comme dans le POM de ProjectA-à-dire d'ajouter une dépendance:

<dependency> 
    <groupId>group.id.of.b</groupId> 
    <artifactId>project-b</artifactId> 
    <version>1.2.3-SNAPSHOT</version> 
</dependency> 

et si vous voulez dépendre du projet dans l'espace de travail (et non sur l'artefact dans le référentiel local), clic droit sur ProjectA puis allez au Propriétés> Maven et assurez-vous que vous avez sélectionné Résolution des dépendances des projets de l'espace de travail comme illustré ci-dessous:

alt text http://img530.imageshack.us/img530/98/screenshot001do.png

+0

Salut, merci pour l'explication claire. J'ai fait des progrès, mais il y a toujours un problème. J'ai fait comme vous l'avez dit, et maintenant je peux voir quand j'ajoute la dépendance sur le projet local dans le pom, je peux voir une icône de dossier de projet pop dans le dossier "Web App Libraries", et certaines de ses dépendances (jars) sont également ajouté. Cependant, je ne peux pas cliquer sur la bibliothèque et voir les classes, et mon projet ne fonctionnera toujours pas car il ne peut pas trouver les classes. Y a-t-il autre chose à faire pour que les cours soient disponibles? – chrismarx

+1

En outre, j'ai relancé la commande maven-package sur le projet de code local, et l'instantané jar résultant a en effet les classes - un conseil? – chrismarx

1

ne peut pas commenter plus, mais après avoir fait un peu plus de lecture, il semble que le « Resolve espace de travail Les dépendances "ne fonctionnent que si ces projets sont également gérés par Maven. Que faire si vous voulez ajouter un projet local qui n'est pas dans maven?

+0

Ainsi, y compris les projets externes fonctionne très bien sans activer les «dépendances de l'espace de travail de résolution», en utilisant les dépendances de module Java EE normales et le chemin de construction Java. Le seul problème est qu'après toutes les modifications dans le fichier pom.xml ou une reconstruction pour un profil différent, Maven supprimera ces références. Ma solution était de créer un profil d'exécution personnalisé pour le problème de profil, donc je n'ai pas besoin de nettoyer/construire localement avec un profil différent, mais les modifications apportées au fichier pom.xml signifient toujours que je dois ajouter manuellement les dépendances :( – chrismarx

Questions connexes