Avec des projets Maven multi-modules, est-il possible de faire ma racine projet (emballé pom-) disponible dans Eclipse?

StackOverflow https://stackoverflow.com/questions/374043

  •  22-08-2019
  •  | 
  •  

Question

Nous avons un groupe assez important de projets Maven2, avec un fichier POM racine liste 10+ modules et un grand nombre de propriétés utilisées par les modules (numéros de version de dépendance, configuration de plug-in, dépendances communes, etc.). Certains des modules sont, comme le projet racine, les parents à d'autres ensembles de modules.

Pour clarifier, le projet racine et desdits projets de parents sont mis à pom emballage (par opposition à, par exemple pot).

Parce qu'il ya beaucoup de dépendances entre les différents projets, j'aime utiliser mvn eclipse: Eclipse sur le projet racine, ce qui me permet de debug / étape dans un projet à tout moment.

Cependant, avec cette approche, le POM racine lui-même, et tous les autres projets emballés pom, ne sont pas disponibles dans Eclipse. Donc, si je veux les modifier, je dois les ouvrir d'une autre manière. Cela devient un peu embêtant.

Alors, ma question est: est-il possible de faire en quelque sorte des projets emballés pom-disponibles dans Eclipse? Sinon, avez-vous des conseils qui pourraient faire mon travail avec ces projets plus faciles?

Pour mémoire, je suis actuellement en utilisant MyEclipse 7.0.

Était-ce utile?

La solution

J'ai essayé à nouveau, avec Galileo et la dernière version de m2eclipse. Il est maintenant possible d'importer des projets Maven directement. (Sans mvn eclipse: eclipse), et il se trouve que le POM racine est également importé en tant que projet, ce qui est très exactement ce que je voulais

Autres conseils

Eh bien. Beaucoup de gens le font en faisant le parent POM un projet de frères et soeurs, et ayant d'un simple réacteur POM à la racine. Cependant, cela peut causer des problèmes avec la génération de site Web et le plug-in de libération, comme ne soutient ce mode autant que l'on peut aimer.

Un grand problème que nous avons souvent est que les gens essaient de vérifier le coffre à l'aide Subclipse, ce qui ajoute un fichier .project à la racine, ce qui empêche alors les projets importateurs dessous de ce niveau. Au lieu de cela, nous devons aller dehors pour vérifier, puis importer les projets.

Je l'ai entendu la rumeur que Subversive pourrait gérer des projets imbriqués mieux, ce qui est vraiment le problème ici. A part cela, je n'ai pas une solution absolue ici.

Vous pouvez essayer d'écrire une tâche pour créer manuellement le fichier .project pour chaque projet POM dans son répertoire. Je ne sais pas sur les détails, mais vous pouvez générer quelque chose comme:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>${project.name}</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
        </buildSpec>
        <natures>
        </natures>
</projectDescription>

dans le répertoire racine du projet et il devrait être correct.

Je ne suis pas sûr que faire cela, alors vous empêcher d'importer les enfants projette dans Eclipse si (comme vous le savez probablement - vous devez importer tous vos projets non-pom d'abord, puis créer des projets « généraux » pour les autres , avec le chemin d'accès correspondant au chemin d'accès physique sous la structure de mvn). Eclipse vous empêcher de créer un projet dans un autre, donc si elle reconnaît quelque chose de plus élevé dans la hiérarchie de projet, vous serez dirigé vers le passé au large.

J'ai réussi à travailler avec Codehaus plugin Eclipse avec des projets Maven ayant des parents. Le plug-in a quelques défauts, mais dans l'ensemble il est maintenu et vous devriez être en mesure d'obtenir avec elle.

En fait, si vous ne voulez pas dépendre de m2eclipse, la « bonne » façon de le faire est d'utiliser un projet plat mise en page (comme le problème est que Eclipse ne supporte pas les projets imbriqués).

En général, je ne ai vraiment besoin du parent disponible dans Eclipse pour ajouter des dépendances et de profiter de la mise en forme XML. Le moyen pas cher et de bonne humeur est de créer des ressources projet et lier la pom-mère en elle. Fichier -> Nouveau -> Autres -> Général -> Fichier -> Avancé

si vous utilisez la version 2.8+ de l'éclipse plugin, vous pouvez avoir générer le lien pour vous dans chacun de vos sous-projets par exemple.

<plugin>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.8-SNAPSHOT</version>
    <configuration>
        <linkedResources> 
            <linkedResource>
                <name>parent.xml</name> 
                <type>1</type>
                <location>${basedir}/${parent.relativePath}</location> 
            </linkedResource>
        </linkedResources> 
    </configuration>
  </plugin>

Bien que vous aurez besoin actuellement de le vérifier de la subversion et de construire vous-même car il ne semble pas résoudre à partir et centrale.

svn co http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-eclipse-plugin/
cd maven-eclipse-plugin
mvn clean install
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top