38 votes

Migration des 2/3 à Maven vers Gradle

J'ai été à la recherche dans Gradle et semble assez intéressant. Je pense être capable d'écrire vos scripts dans une langue autre que le XML est assez cool, et il n'est pas clair pour moi si polyglotte POM Maven fichiers sont toujours une option viable.

Je suis en train de travailler sur un projet qui utilise Maven 2.2.1 comme outil de construction. Ce projet:

  • est multi-module
  • utilise aussi nos propres plugins
  • s'appuie sur une Artifactory proxy référentiel

Existe-il des expériences sur les migrations à partir de Maven pour Gradle? Pièges, des points de douleur, coin affaires? Tout type d'expérience est la bienvenue.

34voto

Benjamin Muschko Points 7642

La migration de Maven pour Gradle n'est pas aussi facile que de Fourmi à Maven (au moins pour le moment). Vous pouvez facilement réutiliser les scripts Ant et de faire d'eux des citoyens à part entière dans votre build Gradle. Il y a une tâche sur le Gradle feuille de route pour la profondeur de l'importation de Maven construit ainsi.

Jusqu'à présent j'ai migré deux enterprise Maven construit à Gradle. Ils étaient tous les deux multi-projets de module à l'aide de Maven standard plugins. En gros, j'ai réécrit le construit la Gradle façon qui exige un minimum de connaissances sur Gradle. D'après mon expérience, vous pouvez facilement obtenir la même génération exécution dans Gradle ainsi. Gradle n'a pas vraiment de zone vous ici et est assez flexible. Le long de la façon dont vous pourriez vous retrouver avoir à écrire un plugin personnalisé qui n'existe pas encore en fonction de ce que Maven plugins que vous utilisez. Cependant, il y a déjà un large souffle de plugins là-bas. Jusqu'à présent, je n'ai pas rencontré un réel obstacle encore. Même si le Gradle la documentation est assez bon, vous pourriez trouver vous-même en lisant beaucoup de Gradle les posts sur le forum pour trouver la solution à l'un de vos problèmes. Certains de la norme Maven fonctionnalités ne sont pas pris en charge hors de la boîte par exemple, un provided de la portée ou de la GUERRE en place. Cependant, il ya des moyens faciles autour d'elle. Je n'ai pas utilisé Artifactory dépôts. Ceux que j'ai côtoyés étaient Nexus dépôts. Autant que je sache, le Gradle gars ont un bon support pour Artifactory bien. Edit: JFrog fournit un Artifactory plugin Gradle.

Une bonne façon de commencer est d'utiliser l'outil de migration Maven2Gradle qui vous permet de générer un Gradle script à partir de votre Maven build. Personnellement, je n'ai pas encore. J'ai développé le build Gradle side-by-side avec le Maven build qui n'a pas causer d'ennuis. Maven mettre son sortie sous target, Gradle en vertu de l' build. Assurez-vous de préparer votre équipe pour le changement. Laisser essayer le build Gradle, et de se familiariser avec l'outil.

Une fois que vous êtes entièrement migré, vous serez très heureux de la maintenabilité et de l'extensibilité de votre build. Il est très facile d'ajouter de génération personnalisée, logique et vous allez être reconnaissants que vous avez laissé XML-terre. En termes de performances, vous n'allez pas faire un pas en arrière tant que bien. Les différentiels de construire fonctionnalité fait son travail très bien.

11voto

Raghuram Points 26896

Vous voudrez peut-être aussi lire à travers cet article de mon expérience de portage d’un projet maven.

1voto

Arun Gopalpuri Points 71

Vous pouvez toujours changer le buildDir en 'target' sous gradé si vous voulez que la sortie de construction passe sous 'target' au lieu de 'build' comme maven :

 buildDir = 'target'
 

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