Skip to main content

Moteur de production (gradle)

L'objectif est d'automatiser les actions pour produire un logiciel, gérer les dépendances, les détecter et adapter la production du logiciel à la platforme. Gradle est un système qui permet d'automatiser tout ça.

Cela permet donc de rendre un projet indépendant de l'environement de développement de la personne qui écrit le code, car Gradle va automatiquement gérer toutes les dépendences nécessaires.

Historique des moteurs de production

Année Programme Langage Avantage
1977 make C et autres
2000 Apache Ant Java
2004 Maven Java Plus complet que Apache Ant
2008 Gradle Java (et autres comme Kotlin) Plus complet que Maven

Que font Gradle et Maven

  • La compilation
  • Le packaging (jar, war, etc)
  • Gestion des dépendences
  • Génération de la documentation
  • Gestionnaire de sources
  • Accès au depot des gestinnaires des dépendences
  • Le déploiement en différents environements (test, développement, production, etc)

Avantage de Gradle

  • Plus rapide
  • Plus flexible (pas limité à Java, contrairement à Maven)
  • Fichier de config et plus simple
  • Gestion des dépendances plus complète
  • Indépendant
  • Multilangage

Configuration de Gradle

  • settings.gradle qui est à la racine du projet et contient le nom du projet ainsi que l'ensemble des sous-projets
  • build.gradle est dans chaque (sous-)projet et contient l'ensemble des éléments utile pour compiler le projet (version de Java, dépendance, , tests, PMD, etc)

Liste des librairies

On peut rechercher les libraries sur le site MVN Repository.

Qu'est ce qu'une librairie

On ne s'amuse pas à réinventer la roue dès que l'on veut faire un programme. Du coup on va réutiliser des composants qui ont déjà été fait par d'autres personnes. Une librarie c'est exactement ça, c'est une collection d'outils qui permettent de programmer plus facilement et plus rapidement sans devoir réinveter les même choses en boucle.

Identification d'une dépendence/librarie

Il y a 3 éléments qui identifie une dépendence :

  • Le group id qui défini le groupe des librairies
  • Le artifact id qui défini la dépendence dans le groupe
  • La version de la dépendence

Il est important de vérifier la version des dépendences qui ne sont pas toujours compatibles entre elles et il faut éviter de prendre des versions trop vieilles.