Gradle
Gradle est un moteur de production fonctionnant sur la plateforme Java. Il permet de construire des projets en Java, Kotlin, Scala, Groovy voire C++.
Développé par | Gradle Inc. et la communauté Gradle |
---|---|
Première version | [1] |
Dernière version | 8.11.1 ()[2] |
Dépôt | github.com/gradle/gradle |
Assurance qualité | Intégration continue |
Écrit en | Java, Groovy et Kotlin |
Système d'exploitation | Multiplateforme |
Environnement | Multi-plateforme |
Type | Moteur de production |
Licence | Licence Apache 2.0 |
Site web | gradle.org |
Gradle allie les atouts de Apache Maven et Apache Ant : il allie l'utilisation de conventions à la manière de Maven (convention plutôt que configuration) avec la flexibilité de Ant pour décrire les tâches de construction, avec une cohérence forte dans l'interface de programmation des tâches.
L'outil a été développé pour la compilation d'exécutables multi-projets, qui tendent à être gourmands en espace. Son fonctionnement est basé sur une série de tâches de compilation qui sont exécutées de manière sérielle ou en parallèle. La compilation incrémentale est supportée en déterminant quelles portions de l'arbre de compilation sont encore à jour ; toute tâche ne dépendant que de ces parties ne sera pas réexécutée. Gradle supporte entre autres la mise en cache des composantes de compilation intermédiaires, composantes pouvant aussi être réparties sur un réseau commun. Un service web permet une visualisation des étapes de la compilation. Finalement, un système de plugin permet d'étendre les fonctionnalités du logiciel afin de supporter des fonctionnalités supplémentaires et d'autres langages de programmation.
Gradle est un logiciel libre distribué sous la licence Licence Apache 2.0. Sa version initiale date de 2007.
Présentation
modifierGradle permet d'écrire des tâches de construction dans un fichier de construction en utilisant le langage dédiée basé sur Groovy ou Kotlin. Il est possible d'importer des tâches standards qui permettent de construire des programmes utilisant un ou plusieurs langages (Java, Groovy…) ou qui permettent d’exécuter des activités d’ingénierie logicielle telles qu'exécuter les tests unitaires, assurer la qualité du code (SonarQube, Checkstyle)…
Gradle reprend certaines des idées fortes de Maven :
- convention plutôt que configuration
- cycle de vie
- gestion des dépendances à la manière d'Apache Ivy ou Maven
- référentiel (ou entrepôts)
Gradle présente les avantages suivants :
- possibilité de scripter la construction en Groovy dans le fichier de construction ;
- possibilité de changer le comportement par défaut de certaines tâches ;
- une notation compacte pour décrire les dépendances ;
- un moteur de production pensé pour produire des projets multi-langages.
Gradle permet de construire sans effort des projets utilisant d'autres langages que Java[3]. Migrer de Maven vers Gradle se fait très facilement pour un projet respectant les conventions Maven[3].
Exemple pour un projet Java
modifierVoici le fichier build.gradle :
apply plugin: 'java'
Executer gradle build donne la sortie suivante :
> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Notes et références
modifier- « https://gradle.com/our-story/ »
- « https://github.com/gradle/gradle/releases/tag/v8.11.1 »
- Build automatisé : à la découverte de Gradle, par Gaylord Mazelier