web-dev-qa-db-fra.com

Convertir un projet Eclipse existant en projet Maven

Pour un projet en cours, nous envisageons d'utiliser le plug-in Maven pour Eclipse afin d'automatiser nos générations. À l’heure actuelle, la procédure est beaucoup plus compliquée qu’elle ne devrait être, et nous espérons que Maven simplifiera les choses en un clic.

Ma question est la suivante: existe-t-il un assistant ou un importateur automatique pour convertir un projet Eclipse Java existant en un projet Maven, à l'aide du plug-in Maven? Ou devrais-je créer un nouveau projet Maven et copier manuellement tous les fichiers sources, bibliothèques, etc.

239
Tom G

Si vous souhaitez simplement créer un POM par défaut et activer les fonctionnalités m2Eclipse: vous êtes donc en train de supposer que vous essayez de ne pas importer une configuration de construction automatisée alternative, et que vous parlez du plug-in m2Eclipse.

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

Nouvelles versions de M2E

Faites un clic droit sur Projet -> sous-menu Configurer -> Convertir en projet Maven

Anciennes versions de M2E

Cliquez avec le bouton droit sur 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 ou un assistant automatique?': pas à ma connaissance. L'utilisation de l'option ci-dessus vous permettra d'activer le plug-in m2Eclipse pour votre projet existant en évitant la copie manuelle. Vous aurez toujours besoin de configurer les dépendances et autres éléments nécessaires pour vous construire.

138
brabster

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

  • Cliquez avec le bouton droit sur le projet Java pour afficher le menu contextuel.
  • Sélectionnez Configuration> Convertir en projet Maven

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

291
chengdong

J'avais le même problème et je voulais créer un espace de travail Eclipse complet contenant environ 60 projets Eclipse. Faire ainsi manuellement a pris 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. Eclipse ne disposant pas de toutes les informations nécessaires sur les dépendances, il effectue les opérations suivantes:

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

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

  • Comme les projets Eclipse ayant des noms avec des espaces sont difficiles à gérer sous 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 les plug-ins Maven requis manuellement.

12

Cliquez avec le bouton droit sur Nom du projet> Configurer> Convertir en projet Maven> cliquez sur Terminer. Ici, vous allez ajouter des dépendances pour télécharger et ajouter le 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 la balise de construction (</build>), ajoutez vos dépendances que vous pouvez copier depuis le site Web maven et ajoutez-les là. Maintenant vous êtes prêt à partir. Ces dépendances ajouteront automatiquement vos fichiers JAR requis.

7
Omar Faroque Anik

La réponse de Chengdong est correcte, vous devriez 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+ peuvent maintenant convertir les paramètres Eclipse existants en configuration de plug-in maven .

En ce qui concerne la conversion de dépendance, vous pouvez essayer la fonctionnalité d’intégration Maven de JBoss Tools (JBT) 4.0, qui contient un assistant de conversion expérimental, intégré 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 le peut), cela devrait grandement aider bootstrap votre processus de conversion Maven.

En outre, pour votre information, voici quelques idées pour améliorer le processus de conversion de M2e , le refactoring pour utiliser une présentation Maven sera probablement mis en œuvre à l'avenir.

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

5
Fred Bricon

C'est nécessaire car, plus ou moins, lorsque nous importons un projet depuis git, ce n'est pas un projet maven, les dépendances maven ne sont donc pas dans le chemin de construction.

Voici ce que j'ai fait pour transformer un projet général en un projet maven.

projet général -> projet Java cliquez avec le bouton droit de la souris sur le projet, propriétés -> facettes du projet, cliquez sur "Java". Cette étape transformera un projet général en Java projet.

Projet Java -> projet maven clic droit projet, configurer -> convertir en projet maven À ce moment, les dépendances maven lib ne sont toujours pas dans le chemin de construction. propriétés du projet, chemin de construction , ajouter une bibliothèque, ajouter des dépendances maven lib

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

4
moonshang

Il existe un programme en ligne de commande permettant de convertir tout projet Java en un projet SBT/Maven.

Il résout tous les fichiers JAR et tente de déterminer la version correcte en fonction de la somme de contrôle, du chemin de classe ou du nom de fichier SHA. Ensuite, il tente de compiler les sources jusqu'à ce qu'il trouve une configuration fonctionnelle. 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

2
Alex

Pour convertir en Gradle est analogue à Maven:

Faites un clic droit sur Projet -> sous-menu Configurer -> Projet Convertir en Grades (STS)

1
another

Ma question est la suivante: existe-t-il un assistant ou un importateur automatique pour convertir un projet Eclipse Java existant en un projet Maven, à l'aide du plug-in Maven?

Pour autant que je sache, rien ne convertira automatiquement un projet Eclipse en un projet Maven (c.-à-d. Modifier la mise en page, créer un POM, "générer" et l'alimenter avec des métadonnées, détecter des 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 but du POM) et/ou pour produire un résultat décent.

Ou devrais-je créer un nouveau projet Maven et copier manuellement tous les fichiers sources, bibliothèques, etc.

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

1
Pascal Thivent