Gradle 7.0, la dernière version du moteur de production, appelé aussi outil de construction de projets, utilisé notamment dans le développement Android, permet des builds incrémentielles plus rapides et prend en charge Java 16. Dans cette version 7.0 de Gradle introduite le 9 avril, l’observation du système de fichiers est activée par défaut afin de rendre les builds incrémentielles plus rapides. Cette fonctionnalité, présente en option depuis la version 6.5 de Gradle, a été validée pour la production dans la version 6.7 de Gradle. Quand l’observation du système de fichiers est activée, Gradle conserve en mémoire ce qu'il a appris sur le système de fichiers entre les builds et n’a pas besoin de lire le système de fichiers à chaque build. Dans le cas d’une build incrémentale, les fichiers d'entrée et de sortie sont vérifiés pour savoir ce qui doit être reconstruit. Cette capacité permet généralement de gagner beaucoup de temps, mais ajoute une certaine surcharge d'I/O, parfois perceptible dans les grands projets quand il y a eu peu de changements par rapport à la build précédente.

Pour passer à la nouvelle version Gradle 7.0, les développeurs peuvent mettre à jour leur wrapper : ./gradlew wrapper --gradle-version=7.0

Les développeurs peuvent consulter le guide de mise à niveau de Gradle et les notes de compatibilité pour en savoir plus sur les changements de rupture, les dépréciations et autres considérations.

Les autres évolutions

Également dans Gradle 7.0 :

- Pour Android, les performances ont été améliorées pour les changements incrémentaux dans les projets, en particulier ceux qui utilisent l'outil Jetifer pour migrer les bibliothèques.

- Gradle prend désormais en charge l'exécution et la construction avec Java 16, ou le Java Development Kit (JDK) 16, livré le 16 mars. Pour supporter le JDK 16, Gradle a été mis à niveau de façon à pouvoir utiliser le langage Groovy 3 dans les scripts de build Groovy DSL.

- Le support natif des systèmes Apple Silicon est désormais possible, chaque fonctionnalité étant désormais prise en charge à l'aide d'un JDK Arm natif. Les versions précédentes de Gradle pouvaient fonctionner sur les Mac Apple Silicon, mais avec quelques limitations. Par exemple, certaines fonctionnalités du JDK Arm devaient être désactivées quand un JDK Intel tournait à la moitié de la vitesse dans la couche de compatibilité Rosetta2.

- Des catalogues de versions ont été introduits à titre expérimental, ce qui permet aux auteurs de builds de centraliser les coordonnées des dépendances (groupe, artefact, versions) de leurs dépendances tierces dans un fichier de configuration classique et de déclarer les dépendances d'une manière sûre.

- Une fonctionnalité expérimentale pour les évaluateurs de projets fournit la sécurité de type et permet la complétion de code dans les IDE.

- Des améliorations ont été apportées à la fiabilité de la build, par exemple, la possibilité d’exécuter une tâche sans profiter de l'exécution parallèle au cas où celle-ci échoue dans la validation des entrées/sorties.

- Le verrouillage des dépendances, un mécanisme permettant d'assurer la reproductibilité des builds lors de l'utilisation de versions de dépendances dynamiques, a été amélioré. Par défaut, cette version utilise le format amélioré de fichier de verrouillage des dépendances, ce qui permet de réduire le nombre de fichiers de verrouillage dans la plupart des projets.