Importer un projet Maven dans Eclipse depuis Git

100

Comment puis-je avoir l'effet de choisir d'importer à la fois à partir de Maven et de Git et qu'Eclipse génère correctement mon projet?

Pour obtenir mon projet dans Eclipse, je peux choisir File-> import-> maven, puis je reçois tous les projets Maven importés et je peux construire correctement, ou je peux choisir File-> import-> git et créer un nouveau projet qui ignore le pom .xml et ne génère pas correctement le projet.

Il semble que je puisse faire l'un ou l'autre mais pas combiner les deux, donc j'obtiens un projet correctement généré.

Arthur Ulfeldt
la source

Réponses:

103

Eclipse Indigo + M2Eclipse 1.0 le rend très facile.

Si vous ne disposez pas déjà du connecteur Git pour M2Eclipse, installez-le. M2Eclipse vous aidera tout au long en vous invitant dans le menu Importer.

  1. Sélectionnez le menu contextuel "Importer ..." dans la vue Explorateur de packages
  2. Sélectionnez l'option "Vérifier les projets Maven à partir de SCM" dans la catégorie Maven
  3. Dans la fenêtre qui s'affiche, choisissez le lien "Trouver plus de connecteurs SCM dans la Marketplace m2e
  4. Trouver le connecteur pour Git ... installer ... redémarrer

Notez que dans la zone de recherche, vous devrez peut-être entrer "EGit" au lieu de "Git" pour trouver le bon connecteur.

Cela fait, allez simplement dans le référentiel EGit, faites apparaître le menu contextuel du répertoire de travail et sélectionnez "Importer des projets Maven ...".

Terminé!

Sri Sankaran
la source
4
J'ai fait cela dans Indigo, mais dans Juno, il y a actuellement un bogue qui empêche l'installation du m2e-git SCM. bugs.eclipse.org/bugs/…
Codey McCodeface
1
@ medPhys-pl Cela semble être un problème concernant m2e et EGit et non Git lui-même.
Sri Sankaran
1
«facile» est relatif. L'ensemble du marché de l'éclipse est un gâchis , les repostiories maven sont un gâchis car elles ne suivent pas la compatibilité, vous vous retrouvez donc avec des dizaines de copies du package presque identique, et maintenant l'ajout d'un "marché m2e" ne fait pas mieux les choses .
A QUITTER - Anony-Mousse
1
@ Anony-Mousse: Je suis d'accord que "facile" est relatif. Cependant, j'ai utilisé cela pour décrire mon expérience en répondant à la question d'origine (importation dans Eclipse à partir d'un dépôt Git). Vos reproches peuvent être valables, mais les problèmes ne sont pas résolus.
Sri Sankaran
2
Il y a une correction à l'étape 4, ce devrait être "..connector for EGit ..". Pour être spécifique de la recherche m2e-egit sur le marché.
nanospeck
41

J'effectuerais un clone git via la ligne de commande (en dehors d'Eclipse) puis utiliserais Fichier -> Importer ... -> Projets Maven existants .

Vos projets seront compris comme utilisant Git et Maven. C'est le moyen le plus rapide et le plus fiable d'importer IMO.

joelittlejohn
la source
3
Oui, cela fonctionne définitivement, mais le nouveau m2 a enfin une bonne intégration avec git et svn. Comme d'autres l'ont noté, EGit 1.0.0, m2e 1.0 et m2e-egit 0.13 vous donneront git -> materialize mvn project pour éclipser en une seule étape.
thetoolman
Hmm, j'ai dû faire un clic droit sur le projet et utiliser "Équipe> Partager le projet", etc., pour que EGit reconnaisse qu'il s'agit d'un projet Git.
Brian McCutchon
19

Étape 1: Configuration d'Eclipse

Tout d'abord, vous aurez besoin d'installer quelques plug-ins Eclipse. Utilisez donc la fonction d'installation du logiciel eclipse IDE dans le menu déroulant de l' aide → Installez un nouveau logiciel et ajoutez un lien vers le site de logiciels disponibles, puis installez-le.

  1. Plug-in GIT (EGIT) - http://download.eclipse.org/egit/updates
  2. Plug-in Eclipse Maven (M2Eclipse) - http://download.eclipse.org/technology/m2e/releases
  3. Maven SCM Handler pour EGit (m2e-egit)

    Installer à partir du M2E Marketplace (Paramètres → Maven → Discovery → Ouvrir le catalogue et rechercher «m2e-egit»)


Étape 2: Cloner le référentiel

Clonez (téléchargez) vos projets Maven depuis Git

Découvrez les projets Maven non éclipse de Git (Fichier → Importer .. → Maven → Découvrez les projets Maven de SCM)

Fichier → Importer .. → Maven → Découvrez les projets Maven de SCM

Ajoutez maintenant votre lien de référentiel git au champ URI SCM, puis cliquez sur suivant et terminez.

Tharindu Rajarathna
la source
18

À partir de cette écriture (mise à jour), une configuration de travail est la suivante:

  1. Eclipse 3.8 (site de mise à jour Eclipse Indigo)
  2. EGit 1.3.0 (site de mise à jour Eclipse Indigo)
  3. m2e 1.0.200 (site de mise à jour Eclipse Indigo)
  4. m2e-egit 0.14.0 (marché m2e lors de l'ajout d'un connecteur)

Testé sur Ubuntu Raring.

Vous pouvez certainement "Importer" -> "Maven" -> "Vérifier les projets Maven de SCM", et c'est le moyen le plus rapide. Cependant, une telle importation directe ne vous donne actuellement pas de contrôle sur le nom du dossier du référentiel cloné. Vous feriez peut-être mieux de travailler à partir de la vue "Git Repository" et d'effectuer soit un "Clonage à partir d'un dépôt Git et ajouter le clone à cette vue", suivi par un "Import Maven Projects" à partir d'un tel clone; le plus long serait de faire votre clonage manuel puis "Ajouter un dépôt Git local existant à cette vue", suivi à nouveau par un "Importer des projets Maven". Dans tous les cas, vous avez un contrôle total sur le dossier cloné.

Un dernier commentaire sur une question secondaire qui m'a fait pleurer de frustration. Pour autant que je sache, si le référentiel cloné se trouve à la racine de votre espace de travail Eclipse et que la hiérarchie de fichiers de votre projet Maven a un POM à sa racine, alors l'importation de ce projet racine renomme le dossier cloné (avec le modèle que vous avez choisi, par défaut à [artifactId]). Sans modifier la structure de votre projet et sans conserver les fichiers en dehors de votre espace de travail, vous pouvez facilement contourner ce problème en clonant sur un sous-sous-dossier du dossier de l'espace de travail.

Luca Geretti
la source
13

J'ai testé cela pour mon projet.

  1. Eclispe Indigo
  2. "Aide> Installer un nouveau logiciel" Activez / installez les plug-ins officiels Git dans "Eclipse Git Plugin .." et installez le lot.
  3. Activez le connecteur Maven / EGit avec ces instructions. Comment faire fonctionner l'intégration git avec m2eclipse?
  4. Basculez vers la perspective Git Repository. Cliquez avec le bouton droit de la souris pour coller l'url git du projet. Les valeurs par défaut devraient toutes fonctionner. Vous voudrez peut-être changer le dossier d'installation qu'il devine.
  5. Développez le référentiel cloné et faites un clic droit sur "Arbre de travail" et choisissez "Importer des projets Maven ...".
  6. Basculez vers la perspective Java. Faites un clic droit sur le projet et choisissez "Équipe> Partager le projet". Sélectionnez "Git" et assurez-vous de cocher la case "Utiliser ou créer un référentiel dans le dossier parent du projet".
simbo1905
la source
1
Ouais, j'ai fait la même chose. Ne comprenez pas pourquoi m2e-egit ne fait pas l'étape 6. automatiquement.
xmedeko
6

Voici ma solution de contournement, c'est une solution à ces problèmes:

  • Vous ne pouvez pas installer m2e-egit (j'obtiens une erreur dans Juno)
  • La conversion d'un projet général (connecté à votre référentiel Git) en un projet Maven ne fonctionne pas pour vous (l'étape Importer des projets Maven semble essentielle)
  • L'importation de projets Maven depuis votre référentiel sur le système de fichiers n'affiche pas le projet connecté à Git.

  1. Configurez votre référentiel Git dans la perspective Exploration du référentiel Git .
    • Basculez vers la perspective Java, Importer> Projets Maven existants
    • Accédez à votre extraction Git dans le système de fichiers, sélectionnez le répertoire contenant le fichier pom.xml. Terminez l'importation; vous remarquerez que ces projets ne sont pas connectés à Git. :-(
    • Supprimez ces projets, mais NE SUPPRIMEZ PAS DU SYSTÈME DE FICHIERS . Nous ne voulons pas que notre clone soit supprimé; cette tâche laisse également le fichier .project pour que nous puissions importer à l'étape suivante.
  2. Revenez à la perspective Exploration du référentiel Git .
    • Cliquez avec le bouton droit sur votre référentiel, Importer des projets ...
    • Sélectionnez Importer des projets existants
    • Dans l'explorateur ci-dessous, recherchez et sélectionnez le répertoire contenant le pom.xml (et le fichier .project), puis cliquez sur Suivant.
    • Continuez dans l'assistant.
Arlo
la source
Dans Eclipse Luna, cela fonctionnait après l'étape 1.2 (le projet était connecté à Git après la première importation).
PJ_Finnegan
4

Importez sans installer de connecteurs supplémentaires pour Mylyn:

  1. Ouvrir la Git Repositoriesvue (Fenêtre-> Afficher la vue-> Dépôts Git)
  2. Appuyez sur le Clone a Git Repositorybouton et procédez à toutes les étapes
  3. Dans le référentiel nouvellement créé, développez Working Directory, cliquez avec le bouton droit sur le dossier avec votre projet et sélectionnez Import Projects. Ensuite Import existing projects, choisissez ou sélectionnez Import as general project. Si nécessaire, après l'importation, faites un clic droit sur votre projet et sélectionnez Configurer-> Convertir en projet Maven (et Maven-> Mettre à jour le projet).
kolobok
la source
3

Vous devez noter que placer les métadonnées générées sous contrôle de version (que ce soit git ou tout autre scm) n'est pas une très bonne idée s'il y a plus d'un développeur travaillant sur la base de code. Deux développeurs peuvent avoir un projet ou un chemin de classe totalement différent. Juste comme un avertissement au cas où vous auriez l'intention de partager le code à un moment donné ...

Peter Hägg
la source
2

J'ai un projet maven avec trois sous-modules qui sont gérés dans git. Je les ai mis en éclipse comme suit:

  1. J'ai enregistré le dépôt git avec eclipse en utilisant EGit
  2. J'ai importé les projets en tant que projets Maven existants
  3. Pour chaque projet, je suis allé Team | Partager le projet .
Tom Norton
la source
1

Je préférerais importer des projets dans Eclipse en tant que mavenprojets plutôt que gitprojet. Cela permettra toujours au contenu du projet d'être reconnu comme contenu git. Vous pouvez continuer à effectuer des opérations git à partir d'Eclipse. Comme vous l'avez mentionné, l'inverse n'est pas vrai.

La nature d'un projet dans Eclipse n'est pas basée sur le SCM qui contient le projet, mais sur le type de projet - qu'il soit war ou jar, etc. - qui est automatiquement déterminé lorsque le projet est importé en tant que projet maven.

J'hésiterais à m'enregistrer dans les métadonnées spécifiques à SCM IDE. Cela suppose beaucoup de choses - tous les développeurs utilisent le même IDE ou la même version de l'EDI, peut-être la même version de JDK / JRE, qu'ils continuent à utiliser la même version tout au long du cycle de vie du projet et ainsi de suite.

Raghuram
la source
1

Tu ne peux pas l' importer comme un projet git puis (si vous avez le m2eclipse installé) Faites un clic droit sur le projet dans le Package Explorer > Maven> Enable Dependency Management?

dimitrisli
la source
1
S'il n'est pas visible et que m2e est installé, ouvrez le fichier .project et ajoutez vous-même la nature maven2: <name> org.eclipse.m2e.core.maven2Builder </name>
dimitrisli
1

Après avoir vérifié ma branche dans Egit, je suis passé à la vue Java, puis j'ai utilisé File -> Import, Git -> Projects from Git, puis j'ai sélectionné le répertoire maven de premier niveau. C'était avec Eclipse Kepler.

Excité
la source
-3

Au lieu de générer constamment des métadonnées de projet via la commande import-> maven, vous pouvez générer les métadonnées de votre projet une fois et les placer dans votre référentiel git avec le reste de votre code source. Après cela, l'utilisation de la commande import-> git importera un projet compatible maven approprié, en supposant que les outils maven soient installés.

Assurez-vous de placer dans le système de contrôle de code source tous les fichiers du répertoire du projet commençant par «.» tels que .classpath et .project avec tout le contenu du répertoire .settings.

Konstantin Komissarchik
la source