Utilisation du gestionnaire de dépendances Maven

Bonjour à toutes et à tous,

Nous allons parler d'un élément important dans la programmation java.

Avec l'évolution de la technologie nous avons aujourd'hui après plusieurs outils de gestion de projet Java , un projet de la fondation apache appelé Maven(plus d'informations https://maven.apache.org/).

Maven est un gestionnaire de dépendances (semblable à npm avec javascript) qui permet de gérer toutes les dépendances liés à un projet.

Il est très utile dans le sens ou toutes les dépendances sont téléchargées une fois depuis Internet
puis utilisées sans Internet à moins d'avoir une nouvelle dépendance du projet.

Quelles sont les notions utiles à comprendre ?


  • POM (Project Object Model)

Le POM Maven est un fichier xml (pom.xml) situé généralement à la racine du projet permettant à Maven de comprende toute la configuration du projet.
Il contient des sections comme la définition du projet (GAV-groupId:artifactId:version) permettant
une réutilisation du projet si besoin (https://maven.apache.org/pom.html).
  • Phases de Maven
Les phases de Maven permettent par exemple de construire les sources du projet (build), tester (test) et lancer le projet (run).
  • Scope d'une dépendance
Le scope d'une dépendance Maven est une notion importante de la gestion d'un projet par Maven.
Le scope permet à Maven de connaître la portée d'une dépendance.
L'utilisation correcte des dépendances avec le scope permet à Maven de n'utiliser que les dépendances nécessaires pendant ses goals( build, run et test par exemple).
  1. Le scope compile (scope par défaut sans précision): une dépendance avec le scope compile permet d'utiliser cette dépendance pendant les phases de build, run et test.
  2. Le scope provided: une dépendance avec ce scope permet de l'utiliser lors de la phase de build et test. Cependanrt elle est utile pour le run mais ne sera pas exporté comme dépendance Maven lié au projet. Généralement utilisée lorsqu'on souhaite utiliser une dépendance déjà présente dans notre conteneur Web d'applications (Tomcat, Widfly..) 
  3. Le scope runtime: il permet d'utiliser la dépendance lors de la phase run et test.
  4. Le scope test: utilisé lors de la phase de test uniquement.
  5. Le scope system: identique à celui de provided, par contre il doit être situé sur la machine exécutant le code Java.
  6. Le scope import: couplé avec la notion de BOM(Bill of Materials) permet d'utiliser un ensemble de dépendances d'un autre projet Maven.

N'hésitez à me revenir en cas de besoin sur le gestionnaire de dépendances avec Maven.

En vous souhaitant bonne lecture.

Patrick BEUGRE




Comments

Popular posts from this blog

Apprendre le framework de Java (Spring Boot, 1ère partie)

Apprendre le framework de Java (Spring Boot, 2ème partie)

Apprendre le framework de Python (Flask 1ère partie )