2010-03-15 6 views
220

Pour un projet au travail, nous envisageons d'utiliser le plugin Maven pour Eclipse afin d'automatiser nos builds. À l'heure actuelle, la procédure est beaucoup plus compliquée qu'elle ne devrait l'être, et nous espérons que Maven simplifiera les choses en un clic.Conversion d'un projet Eclipse existant en projet Maven

Ma question est, existe-t-il un assistant ou un importateur automatique pour convertir un projet Eclipse Java existant en un projet Maven, en utilisant le plugin Maven? Ou devrais-je créer un nouveau projet Maven et copier manuellement sur tous les fichiers source, libs, etc.

+3

Gradle (STS) Est-ce que votre utilisation actuelle construction un script Ant? –

+4

Vous devriez probablement passer accepté réponse –

Répondre

120

Si vous voulez juste créer un défaut POM et activer les fonctions de m2eclipse: donc je suppose que vous ne l'avez pas encore un configuration de construction automatique alternative que vous essayez d'importer, et je suppose que vous parlez du plugin m2eclipse.

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

versions plus récentes de M2E

Faites un clic droit sur le projet -> sous-menu Configuration -> Convertir en Maven projet

Les versions plus anciennes M2E

droit de clic sur le projet -> sous-menu Maven -> Activer la dépendance Gérer ment.

Cela va faire le nécessaire pour activer le plugin pour ce projet.


Pour répondre à «est-il un importateur automatique ou assistant? ': pas que je sache. 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 configurer les dépendances et d'autres choses dont vous avez besoin pour vous construire.

+0

Bien qu'il permet m2eclipse, ce n'est pas vraiment un sorcier ne pas importer un projet Eclipse existant. Au contraire, il donne à l'utilisateur une option de sélection des dépendances, etc., ce qui peut être difficile si l'utilisateur n'a pas beaucoup d'expérience avec Maven. –

+0

J'ai interprété la question comme «ai-je besoin de créer un nouveau projet et de copier manuellement des choses pour utiliser le plugin m2eclipse?», Je vais clarifier. – Brabster

+0

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

1

Ma question est, est-il un assistant ou importateur automatique pour la conversion d'un projet existant Eclipse Java pour un projet Maven, en utilisant le plugin Maven?

Pour autant que je sache, il n'y a rien qui automagiquement convertir un projet Eclipse dans un projet Maven (ie modifier la mise en page, créer un POM, « générer » et le nourrir avec des métadonnées, de détecter les bibliothèques et leurs versions pour les ajouter au POM, etc.). Eclipse n'a tout simplement pas assez de métadonnées pour rendre cela possible (c'est précisément le point du POM) et/ou pour produire un résultat décent.

Ou devrais-je créer un nouveau projet Maven et copier manuellement sur tous les fichiers source, libs, etc

Ce serait la meilleure option à mon avis. Créer un projet Maven, copier/déplacer des sources, des ressources, des tests, tester des ressources dans leurs répertoires respectifs, déclarer dépendances, etc.

+0

Toujours vrai maintenant? –

+0

Pourquoi cette réponse est-elle plus élevée que la réponse +199? Je n'ai presque pas vu celui-là – Evorlor

281

Depuis m2e 0.13.0 (si pas plus tôt que), vous pouvez convertir un Java projet au projet Maven à partir du menu contextuel.Voici comment:

  • cliquez droit sur le projet Java pour faire apparaître le menu contextuel
  • Sélectionnez Configurer> Convertir en projet Maven

Voici le detailed steps avec des captures d'écran.

+27

Cela ne crée toujours pas les structures de répertoire et ajouter des dépendances dans pom. –

+2

cela fonctionnera-t-il également avec des projets Android dans Eclipse? – Quasaur

+1

m2e ne crée-t-il toujours pas la structure de répertoire maven et ajoute des dépendances dans pom? –

10

J'avais le même problème et je voulais Maveniser l'espace de travail eclipse entier contenant environ 60 projets Eclipse. Le faire manuellement exigeait beaucoup de temps et les options alternatives n'étaient pas viables. Pour résoudre le problème, j'ai finalement créé un projet appelé eclipse-to-maven sur github. Comme éclipse n'a pas toutes les informations nécessaires sur les dépendances, il effectue les opérations suivantes:

  • Basé sur <classpathentry/> éléments XML dans .classpath fichier, il crée les dépendances sur un autre projet, identifie le fichier jar de la bibliothèque et sur la base sur son nom (par exemple jakarta-oro-2.0.8.jar) identifie sa version. Actuellement artifactId et groupId sont les mêmes que je ne pouvais pas trouver quelque chose qui pourrait me retourner le Maven groupId de la dépendance basée sur artifactId. Bien que ce ne soit pas une solution parfaite, il fournit un bon terrain pour accélérer la Mavenisation.

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

  • Comme les projets Eclipse ayant des noms avec des espaces sont difficiles à traiter sur l'environnement Linux/Unix, il les renomme aussi bien 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 les plugins Maven manuellement.

+0

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

+0

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

+0

Luna est la dernière version d'eclipse !! –

4

La réponse de Chengdong est correcte, vous devez utiliser Configure>Convert to Maven Project. Cependant, je dois ajouter que le processus de conversion a été grandement amélioré depuis m2e 0.13.0: m2e 1.1+ et m2e-wtp 0.16.0+ peut maintenant convert the existing eclipse settings into maven plugin configuration. En ce qui concerne la conversion de dépendances, vous pouvez essayer la fonction d'intégration JBoss Tools (JBT) 4.0 Maven, qui contient un assistant de conversion expérimental, connecté au processus de conversion de m2e: http://docs.jboss.org/tools/whatsnew/maven/maven-news-4.0.0.Beta1.html.

Il ne prétend pas être la solution ultime (rien ne peut), que cela devrait grandement aider à amorcer votre processus de conversion Maven.

En outre, FYI, voici some ideas to enhance m2e's conversion process, refactoring pour utiliser une mise en page Maven sera probablement mis en œuvre à l'avenir.

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

7

Faites un clic droit sur le nom du projet> Configurer> Convertir en projet Maven> cliquez sur Terminer. Ici vous allez ajouter quelques dépendances à télécharger et ajouter votre fichier JAR attendu.

Cela créera un fichier pom.xml généré automatiquement. Ouvrez ce fichier au format XML dans votre éditeur Eclipse. Après le tag de construction (</build>), ajoutez vos dépendances que vous pouvez copier depuis le site Web de maven et ajoutez-les ici. Maintenant vous êtes bon à aller. Ces dépendances ajouteront automatiquement vos fichiers jar requis.

+1

Est-ce que cela créera la structure du dossier maven? –

+0

@Mr_and_Mrs_D: Non –

4

Il est nécessaire parce que, plus ou moins, lorsque nous importons un projet de git, ce n'est pas un projet Maven, de sorte que les dépendances de Maven ne sont pas dans le chemin de la construction.

Voici ce que je vous ai fait tourner un projet général d'un projet Maven.

projet général -> projet java faites un clic droit sur le projet, propriétés-> facettes du projet, cliquez sur "java". Cette étape va transformer un projet général en projet java.

java project -> projet maven clic droit sur projet, configure -> convertir en projet maven A ce stade, les dépendances maven lib ne sont toujours pas dans le chemin de compilation. propriétés du projet, construire le chemin, ajouter la bibliothèque, ajouter des dépendances maven lib

Et attendez quelques secondes, lorsque les dépendances sont chargées, le projet est prêt!

1

Il existe un programme de ligne de commande pour convertir tout projet Java dans un projet SBT/Maven.

Il résout tous les pots et essaie de trouver la bonne version en fonction de contrôle du CSA, classpath ou nom de fichier. Ensuite, il essaie de compiler les sources jusqu'à ce qu'il trouve une configuration de travail. Des tâches personnalisées à exécuter par configuration de dépendance peuvent également être données.

UniversalResolver 1.0 
Usage: UniversalResolver [options] 

    -s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>... 
     required src paths to include 
    -j <jar1>,<jar2>... | --jars <jar1>,<jar2>... 
     required jars/jar paths to include 
    -t /path/To/Dir | --testDirectory /path/To/Dir 
     required directory where test configurations will be stored 
    -a <task1>,<task2>... | --sbt-tasks <task1>,<task2>... 
     SBT Tasks to be executed. i.e. compile 
    -d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json 
     optional file where the dependency buffer will be stored 
    -l | --search 
     load and search dependencies from remote repositories 
    -g | --generateConfigurations 
     generate dependency configurations 
    -c <value> | --findByNameCount <value> 
     number of dependencies to resolve by class name per jar 

https://bitbucket.org/mnyx/universalresolver

+0

Cela ressemble à une option très attrayante. Mais, comme il est actuellement emballé, il n'est pas très accessible. Il n'est pas évident comment empaqueter et déployer le code source. La plupart des développeurs Java ne sont pas des développeurs Scala, et SBT n'est pas un outil largement utilisé dans la communauté. –

0

Pour convertir en Gradle est analogique Maven:

Faites un clic droit sur le projet -> sous-menu Configuration -> Convertir en projet

+3

La réponse n'est pas pertinente à la question –

+0

J'ai trouvé cette question en cherchant Gradle, plusieurs fois il est utile d'ajouter des réponses pour d'autres O.S. plutôt que l'O.S. demandé. parce qu'il n'existe pas de question pour un cas individuel. En ce qui concerne Gradle, je ne créerais pas une nouvelle question pour répondre à ce que je considère utile, plutôt que de poster ceci. Merci et salutations. – another

Questions connexes