Gradle - Aperçu

"Gradle is an open source build automation system"

Ant et Maven ont partagé un succès considérable sur le marché JAVA. Ant a été le premier outil de construction sorti en 2000 et il est développé sur la base d'une idée de programmation procédurale. Plus tard, il est amélioré avec la possibilité d'accepter les plug-ins et la gestion des dépendances sur le réseau avec l'aide d'Apache-IVY. Le principal inconvénient est XML en tant que format pour écrire des scripts de construction, être hiérarchique n'est pas bon pour la programmation procédurale, et XML a tendance à devenir trop volumineux.

Maven est introduit en 2004. Il vient avec beaucoup d'améliorations puis ANT. Il modifie sa structure et continue d'utiliser XML pour écrire les spécifications de construction. Maven s'appuie sur les conventions et est capable de télécharger les dépendances sur le réseau. Les principaux avantages de maven sont son cycle de vie. Tout en suivant le même cycle de vie pour plusieurs projets en continu. Cela entraîne un coût de flexibilité. Maven est également confronté à des problèmes de gestion des dépendances. Il ne gère pas bien les conflits entre les versions de la même bibliothèque et les scripts de construction personnalisés complexes sont en fait plus difficiles à écrire dans maven que dans ANT.

Finalement Gradle est entré en scène en 2012. Gradle possède des fonctionnalités efficaces des deux outils.

Caractéristiques de Gradle

Voici la liste des fonctionnalités fournies par Gradle.

  • Declarative builds and build-by-convention- Gradle est disponible avec un langage DSL (Domain Specific Language) distinct basé sur le langage Groovy. Gradle fournit des éléments de langage déclaratifs. Ces éléments fournissent également un support build-by-convention pour Java, Groovy, OSGI, Web et Scala.

  • Language for dependency based programming - Le langage déclaratif se trouve au sommet d'un graphique de tâches à usage général, que vous pouvez pleinement exploiter dans votre construction.

  • Structure your build- Gradle vous permet enfin d'appliquer des principes de conception communs à votre build. Cela vous donnera une structure parfaite pour la construction, afin que vous puissiez concevoir une construction bien structurée et facile à entretenir, compréhensible.

  • Deep API - En utilisant cette API, il vous permet de surveiller et de personnaliser sa configuration et son comportement d'exécution à son cœur.

  • Gradle scales - Gradle peut facilement augmenter leur productivité, des constructions de projet simples et uniques aux grandes constructions multi-projets d'entreprise.

  • Multi-project builds- Gradle prend en charge les builds multi-projets et prend en charge les builds partiels. Si vous créez un sous-projet, Gradle se charge de créer tous les sous-projets dont il dépend.

  • Different ways to manage your builds - Gradle prend en charge différentes stratégies pour gérer vos dépendances.

  • Gradle is the first build integration tool- Gradle entièrement pris en charge pour vos tâches ANT, infrastructure de référentiel Maven et lvy pour la publication et la récupération des dépendances. Gradle fournit également un convertisseur pour transformer un script Maven pom.xml en Gradle.

  • Ease of migration- Gradle peut facilement s'adapter à n'importe quelle structure que vous avez. Par conséquent, vous pouvez toujours développer votre build Gradle dans la même branche où vous pouvez créer un live script.

  • Gradle Wrapper- Gradle Wrapper vous permet d'exécuter des builds Gradle sur des machines où Gradle n'est pas installé. Ceci est utile pour l'intégration continue des serveurs.

  • Free open source - Gradle est un projet open source, sous licence Apache Software License (ASL).

  • Groovy- Le script de construction de Gradle est écrit en Groovy. Toute la conception de Gradle est orientée vers une utilisation comme un langage et non comme un cadre rigide. Et Groovy vous permet d'écrire votre propre script avec quelques abstractions. L'ensemble de l'API Gradle est entièrement conçu en langage Groovy.

Pourquoi Groovy?

L'API Gradle complète est conçue en utilisant le langage Groovy. C'est un avantage d'un DSL interne sur XML. Gradle est un outil de construction à usage général à sa base; son objectif principal est les projets Java. Dans de tels projets, les membres de l'équipe seront très familiers avec Java et il est préférable qu'une compilation soit aussi transparente que possible pour tous les membres de l'équipe.

Des langages comme Python, Groovy ou Ruby sont meilleurs pour le framework de construction. C'est pourquoi Groovy a été choisi, car il offre de loin la plus grande transparence pour les utilisateurs de Java. La syntaxe de base de Groovy est la même que celle de Java. Groovy offre bien plus en plus de cela.