Blog Zenika

#CodeTheWorld

Java

Plonger dans le nouvel outil de build Gradle

Gradle est le dernier né des outils de build. Il agrège les meilleures fonctionnalités des différents outils de builds du marché. On peut comparer Gradle à Maven en terme de fonctionnalités avec des conventions, un cycle de vie, un gestionnaire de dépendances puissant et une gestion avancée des multiprojets.

Un script de build Gradle est défini par un fichier “build.gradle” qui est écrit dans une syntaxe par programmation à l’aide du langage Groovy. La localisation d’un descripteur Gradle dans un filesystem définit un projet Gradle. Un projet Gradle est composé d’un ensemble de tâches qui sont équivalentes aux targets ANT. Le choix du langage Groovy comme langage de script permet à Gradle d’être un outil transparent pour tous les développeurs d’une équipe de projet Java grâce à la facilité d’apprentissage et à la proximité du langage Groovy avec le langage Java. Cette approche est nouvelle pour un langage de build comparé à Ant ou à Maven nécessitant des connaissances avancées des outils pour maintenir le script de build.
Concernant la gestion des dépendances, Gradle se base sur le très avancé gestionnaire de dépendances Ivy. Mais Gradle utilise ce gestionnaire par des API évitant ainsi l’ajout du descripteur “ivy.xml”. L’intégration de Ivy dans Gradle offre de nombreuses possibilités comme l’utilisation d’un repository Maven ou un repository Ivy existant mais également un repository sans descripteur associé.
Les conventions de Gradle sont implémentées par une couche core et par un ensemble de plugins. Mais contrairement à Maven, les plugins sont liés au core de la distribution. Cela signifie que s’il y a un bug sur l’implémentation d’un plugin, il faut récupérer une nouvelle version de gradle pour bénéficier de la correction.
On peut noter la gestion intelligente des propriétés avec le fichier “gradle.properties” au niveau projet ou au niveau utilisateur. A signaler également, comme l’outil Gant, Gradle peut intégrer des tâches Ant existantes par l’API AntBuilder offrant de la sorte une très grande flexibilité.
Gradle permet une gestion avancée des multiprojets à l’aide de la fonctionnalité “Cross Project Configuration”, permettant de configurer un script de build depuis n’importe quel autre script de build. S’appuyant sur un mécanisme d’injection de configuration pour définir des comportements communs, Gradle révolutionne les outils de build classiques qui utilisent l’héritage comme mécanisme principal.
Au regard des fonctionnalités proposées, Gradle se positionne comme le langage incontournable de compilation, de packaging et de déploiement des applications Java. La présentation de Gradle à la prochaine conférence Devoxx est à suivre de près.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En savoir plus sur Blog Zenika

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continue reading