Le parent de démarrage Spring Boot

1. Introduction

Dans ce didacticiel, nous allons en apprendre davantage sur spring-boot-starter-parent et comment nous pouvons en bénéficier pour une meilleure gestion des dépendances, les configurations par défaut pour les plugins et créer rapidement nos applications Spring Boot .

Nous verrons également comment nous pouvons remplacer les versions des dépendances et des propriétés existantes fournies par starter-parent.

2. Parent de démarrage Spring Boot

Le projet spring-boot-starter-parent est un projet de démarrage spécial - qui fournit des configurations par défaut pour notre application et une arborescence de dépendances complète pour créer rapidement notre projet Spring Boot .

Il fournit également la configuration par défaut pour les plugins Maven tels que maven-failafe-plugin , maven-jar-plugin , maven-surefire-plugin , maven-war-plugin .

Au-delà de cela, il hérite également de la gestion des dépendances de spring-boot-dependencies qui est le parent du s pring-boot-starter-parent .

Nous pouvons commencer à l'utiliser dans notre projet en l'ajoutant en tant que parent dans le pom.xml de notre projet :

 org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE 

Nous pouvons toujours obtenir la dernière version de spring-boot-starter-parent auprès de Maven Central.

3. Gestion des dépendances

Une fois que nous avons déclaré le parent de démarrage dans notre projet, nous pouvons extraire n'importe quelle dépendance du parent en la déclarant simplement dans notre balise dependencies .

De plus, nous n'avons pas besoin de définir les versions des dépendances, Maven téléchargera les fichiers jar en fonction de la version définie pour le parent starter dans la balise parent.

Par exemple, si nous construisons un projet Web, nous pouvons ajouter directement spring-boot-starter-web , et nous n'avons pas besoin de spécifier la version:

  org.springframework.boot spring-boot-starter-web  

4. La balise de gestion des dépendances

Pour gérer une version différente d'une dépendance fournie par le parent de démarrage, nous pouvons déclarer la dépendance et sa version explicitement dans la section dependencyManagement :

   org.springframework.boot spring-boot-starter-data-jpa 2.2.5.RELEASE   

5. Propriétés

Pour changer la valeur de n'importe quelle propriété définie dans le parent de démarrage, nous pouvons la re-déclarer dans notre section de propriétés.

Le parent spring-boot-starter via ses dépendances parent spring-boot utilise des propriétés pour configurer toutes les versions de dépendances, la version Java et les versions du plugin Maven.

Par conséquent, cela nous permet de contrôler facilement ces configurations en modifiant simplement la propriété correspondante.

Si nous voulons changer la version de toute dépendance que nous voulons extraire du parent de démarrage, nous pouvons ajouter la dépendance dans la balise de dépendance et configurer directement sa propriété:

 4.11 

6. Autres remplacements de propriété

Nous pouvons également utiliser des propriétés pour d'autres configurations telles que la gestion des versions de plugin ou même pour certaines configurations de base comme la gestion de la version Java, l'encodage source.

Nous avons juste besoin de re-déclarer la propriété avec une nouvelle valeur.

Par exemple, pour changer la version Java, nous pouvons l'indiquer dans la propriété java.version :

 1.8 

7. Projet Spring Boot sans Starter Parent

Parfois, nous avons un parent Maven personnalisé. Ou, nous pouvons préférer déclarer toutes nos configurations Maven manuellement.

Dans ce cas, nous pouvons choisir de ne pas utiliser le projet spring-boot-starter-parent . Mais, nous pouvons toujours bénéficier de son arbre de dépendances en ajoutant une dépendance spring-boot-dependencies dans notre projet dans la portée d' importation .

Expliquons cela avec un exemple simple dans lequel nous voulons utiliser un autre parent autre que le parent de démarrage:

 com.baeldung spring-boot-parent 1.0.0-SNAPSHOT 

Ici, nous avons utilisé des modules parents pour un projet différent comme dépendance parente.

Maintenant, dans ce cas, nous pouvons toujours obtenir les mêmes avantages de la gestion des dépendances en l'ajoutant dans la portée d' importation et le type pom :

   org.springframework.boot spring-boot-dependencies 2.2.6.RELEASE pom import   

De plus, nous pouvons extraire n'importe quelle dépendance en la déclarant simplement dans des dépendances comme nous l'avons fait dans nos exemples précédents. Aucun numéro de version n'est nécessaire pour ces dépendances.

8. Résumé

Dans ce didacticiel, nous avons donné un aperçu de spring-boot-starter-parent et l'avantage de l'ajouter en tant que parent dans n'importe quel projet enfant.

Ensuite, nous avons appris à gérer les dépendances. Nous pouvons remplacer les dépendances dans dependencyManagement ou via les propriétés.

Le code source des extraits de code utilisés dans ce didacticiel est disponible sur Github, l'un utilisant le parent de démarrage et l'autre un parent personnalisé.