Maven est mort, Vive Gradle

Jeremie Guidoux
10/07/2017

Le jeudi 29 Janvier 2017, je vous ai présenté, avec la participation de La French Tech Rennes St Malo, ainsi que la société Slickteam, un Meetup sur l’outil de build Gradle. Pour ceux qui n’ont pas pu participer à cet événement. Voici un petit résumé.

Souple, puissant, rapide. Voici les trois mots que j’utiliserai si on me demandait de résumer Gradle en quelques mots, l’outil de construction (ou de build) de projets Java, Groovy, C/C++ et autres langages.

Avec Gradle, vous allez pouvoir compiler, tester et packager votre projet. Mais également obtenir des rapports au format html pour les tests, les résumés de build. La description de votre projet… ainsi que beaucoup d’autres fonctionnalités.

Souple, car Gradle a un fichier de configuration non pas en xml, mais dans un langage de programmation : Groovy. Ce choix ouvre le champ des possibilités pour manipuler son projet à sa guise. Vous voulez que votre projet se comporte différemment, selon si vous êtes en production, en recette ou en développement ? Ou encore vous voulez que tous vos projets sauf ceux dont les noms commencent par ‘realease’ ou ‘documentation’ soient des projets java ? Tout cela, par exemple, est possible avec un simple If.

Souple également par la possibilité de création et la manipulation de tâches « à la volée ». Contrairement à Maven, une tâche n’a pas forcément à être associé à un plugin. Créer, par exemple, des tâches pour effectuer des tests d’intégrations ou fonctionnels a rarement été aussi simple.

Puissant, car Gradle utilise les conventions provenant de Maven (même structure de projets par ex) et sa notion de cycle de vie.

Puissant également pour sa gestion complète et astucieuse des projets de type multi-projets. Contrairement à Maven, avec Gradle, un sous-projet à connaissance de ses « frères ». Ainsi, si pour compiler un projet, il y a nécessité de recompiler d’autres projets frères, Gradle le fera automatiquement. Autre cas intéressant, vous avez modifié un projet. Vous voulez vérifier que les modifications n’ont pas entrainé de régression sur l’ensemble du projet. Vous pouvez demander à Gradle de compiler et tester tous les projets qui dépendent de ces modifications.

Rapide, car sous la philosophie de Gradle : « Le meilleur moyen de travailler rapidement, c’est de ne pas faire ce qui n’a pas besoin d’être fait », sous cette phrase, se cache quelques fonctionnalités intéressantes tels que le build-incrémental ou le build-cache qui vont booster le temps de build de vos projets. Selon Gradle, il est dorénavant possible sur certains types de projets d’avoir un temps de build jusqu’à 100 fois plus rapide qu’avec Maven.

Pour finir, n’oublions pas un dernier point, créer un nouveau projet Gradle dans une entreprise où l’écosystème de projet serait composé de projet Maven, Ant, Apache Ivy est transparent. En effet, Gradle supporte tous ces projets. Il peut aussi bien les utiliser en tant que dépendances qu’être utilisé par ceux-ci.

Il ne vous reste plus qu’à tester cet outil 😊

Les slides sont disponibles ici.