252 votes

Convertir un projet Eclipse existant en projet Maven

Pour un projet au travail, nous envisageons d'utiliser le plugin Maven pour Eclipse afin d'automatiser nos constructions. Actuellement, la procédure est beaucoup plus compliquée qu'elle ne devrait l'être, et nous espérons que Maven simplifiera les choses en permettant une construction en un seul clic.

Ma question est la suivante : existe-t-il un assistant ou un importateur automatique pour convertir un projet Java Eclipse existant en un projet Maven, en utilisant le plugin Maven ? Ou dois-je créer un nouveau projet Maven et copier manuellement tous les fichiers sources, les librairies, etc.

3 votes

Votre construction existante utilise-t-elle un script Ant ?

4 votes

Vous devriez probablement changer de réponse acceptée

296voto

chengdong Points 1629

A partir de m2e 0.13.0 (si ce n'est plus), vous pouvez convertir un projet Java en projet Maven à partir du menu contextuel. Voici comment :

  • Cliquez avec le bouton droit de la souris sur le projet Java pour faire apparaître le menu contextuel.
  • Sélectionnez Configurer > Convertir en projet Maven

Voici le étapes détaillées avec des captures d'écran.

32 votes

Cela ne crée toujours pas les structures de répertoire et n'ajoute pas les dépendances dans pom.

2 votes

M2e ne crée toujours pas la structure de répertoire maven et n'ajoute pas les dépendances dans pom ?

2 votes

Ma solution (@ShriKant Vashishtha) mentionnée ci-dessous résout tous les problèmes décrits ici. Crée la structure Maven, supprime les espaces dans les noms de dossiers, crée pom.xml et déplace les dossiers sources dans la structure Maven.

143voto

Brabster Points 18764

Si vous souhaitez simplement créer un POM par défaut et activer les fonctionnalités de m2eclipse : je suppose donc que vous n'avez pas actuellement de configuration de construction automatisée alternative que vous essayez d'importer, et je suppose que vous parlez du plugin m2eclipse.

Le plugin m2eclipse fournit une option de clic droit sur un projet pour ajouter ce pom.xml par défaut :

Versions M2E plus récentes

Clic droit sur le projet -> sous-menu Configurer -> Convertir en projet Maven

Anciennes versions de M2E

Cliquez à droite sur le projet -> sous-menu Maven -> Activer la gestion des dépendances.

Cela fera le nécessaire pour activer le plugin pour ce projet.

Pour répondre à ' existe-t-il un importateur automatique ou un assistant ? ' : pas à ma connaissance. L'utilisation de l'option ci-dessus vous permettra d'activer le plugin m2eclipse pour votre projet existant en évitant la copie manuelle. Vous aurez toujours besoin de mettre en place les dépendances et autres choses que vous devez construire vous-même.

0 votes

Bien qu'il active M2Eclipse, il ne s'agit pas vraiment d'un assistant et il n'importe pas un projet Eclipse existant. Il donne plutôt à l'utilisateur la possibilité de sélectionner des dépendances, etc., ce qui peut être difficile si l'utilisateur n'a pas beaucoup d'expérience avec Maven.

0 votes

J'ai interprété la question comme suit : "Dois-je créer un nouveau projet et copier manuellement des éléments pour utiliser le plugin m2eclipse ?", je vais préciser.

0 votes

Oui, je regardais spécifiquement le plugin m2eclipse - c'est celui qui est suggéré sur le site Web de Maven, et il semble qu'il soit correctement supporté.

13voto

J'avais le même problème et je voulais Maveniser un espace de travail Eclipse entier contenant environ 60 projets Eclipse. Le faire manuellement demandait beaucoup de temps et les autres options n'étaient pas très viables. Pour résoudre le problème, j'ai finalement créé un projet appelé eclipse-to-maven sur github. Comme eclipse n'a pas toutes les informations nécessaires sur les dépendances, il fait ce qui suit :

  • Sur la base de <classpathentry/> XML dans le fichier .classpath, il crée les dépendances sur un autre projet, identifie le fichier jar de la bibliothèque et, sur la base de son nom (par exemple jakarta-oro-2.0.8.jar), identifie sa version. Actuellement, artifactId y groupId sont les mêmes car je n'ai pas trouvé quelque chose qui puisse me renvoyer le groupId Maven de la dépendance basée sur artifactId . Bien que cette solution ne soit pas parfaite, elle constitue un bon point de départ pour accélérer la mavenisation.

  • Il déplace tous les dossiers de sources selon la convention Maven (comme src/main/java )

  • Comme les projets Eclipse ayant des noms avec des espaces sont difficiles à gérer dans un environnement Linux/Unix, il les renomme également avec des noms sans espaces.

  • Les fichiers pom.xml résultants contiennent les dépendances et la structure de base de pom. Vous devez ajouter manuellement les plugins Maven requis.

0 votes

Intéressant ! Est-il porté sur Luna ? Le projet serait-il toujours un projet eclipse (valide .classpath y .project fichiers) ? Pourriez-vous ajouter à votre réponse comment utiliser votre plugin pour maveniser un simple projet JavaSE - et quels seraient les changements réels dans la structure des répertoires ?

0 votes

Désolé mais je ne sais pas ce qu'est Luna. Il ne sera plus un projet eclipse valide car la structure du répertoire du projet a été modifiée. Cependant, il est facile de créer des configurations eclipse modifiées en utilisant Maven. Ce n'est pas un plugin mais un outil. La façon de l'exécuter est déjà mentionnée dans le README du projet. La structure des répertoires est convertie dans la convention Maven. Ainsi, toutes les sources vont dans src/main/java par exemple.

0 votes

Luna est la dernière version d'Eclipse !

8voto

Cliquez à droite sur le nom du projet > Configure > Convert to Maven Project > cliquez sur finish. Ici, vous allez ajouter quelques dépendances à télécharger et ajouter votre fichier jar attendu.

Cela va créer un fichier pom.xml généré automatiquement. Ouvrez ce fichier au format xml dans votre éditeur eclipse. Après la balise build ( </build> ) ajoutez vos dépendances que vous pouvez copier depuis le site web de maven et les ajouter là. Maintenant vous êtes prêt à partir. Ces dépendances ajouteront automatiquement vos fichiers jar requis.

1 votes

Cela créera-t-il la structure du dossier maven ?

0 votes

Oui, il créera la structure du dossier maven basée sur le modèle d'archétype approprié et la configuration minimale. Vous devez ajouter chacune des dépendances de votre projet (à partir de .classpath) dans POM.xml vous-même manuellement, une par une.

5voto

Fred Bricon Points 2031

Chengdong la réponse est correcte, vous devez utiliser Configure>Convert to Maven Project. Cependant, je dois ajouter que le processus de conversion a été grandement améliorée depuis m2e 0.13.0 : m2e 1.1+ et m2e-wtp 0.16.0+ peut maintenant convertir les eclipse paramètres de configuration du plugin maven .

Comme pour la dépendance de conversion de la matière, vous pouvez essayer de JBoss Tools (JBT) 4.0 Maven fonctionnalité d'intégration, qui contient un dispositif expérimental de l'assistant conversion, branché sur m2e le processus de la conversion : http://docs.jboss.org/tools/whatsnew/maven/maven-news-4.0.0.Beta1.html.

Il ne prétend pas être la solution ultime (on ne peut rien), il devrait grandement aider bootstrap Maven processus de conversion.

Aussi, pour info, voici quelques idées pour améliorer la m2e le processus de la conversion, refactoring à utiliser Maven pour la mise en page sera probablement mis en œuvre dans l'avenir.

JBT 4.0 (nécessite Eclipse JavaEE Juno) peut être installé à partir de http://download.jboss.org/jbosstools/updates/stable/juno/ ou de l'Eclipse Marketplace

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X