Il genitore di Spring Boot Starter

1. Introduzione

In questo tutorial, impareremo a conoscere lo spring-boot-starter-parent e come possiamo trarne vantaggio per una migliore gestione delle dipendenze, le configurazioni predefinite per i plug-in e creare rapidamente le nostre applicazioni Spring Boot .

Vedremo anche come possiamo sovrascrivere le versioni delle dipendenze e delle proprietà esistenti fornite da starter-parent.

2. Spring Boot Starter Parent

Il progetto spring-boot-starter-parent è uno speciale progetto di avvio, che fornisce configurazioni predefinite per la nostra applicazione e un albero delle dipendenze completo per costruire rapidamente il nostro progetto Spring Boot .

Fornisce anche la configurazione predefinita per i plugin Maven come maven-failsafe-plugin , maven-jar-plugin , maven-surefire-plugin , maven-war-plugin .

Oltre a ciò, eredita anche la gestione delle dipendenze dalle dipendenze spring-boot, che è il genitore di s pring-boot-starter-parent .

Possiamo iniziare a usarlo nel nostro progetto aggiungendolo come genitore nel pom.xml del nostro progetto :

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

Possiamo sempre ottenere l'ultima versione di spring-boot-starter-genitore da Maven Central.

3. Gestione delle dipendenze

Una volta che abbiamo dichiarato il genitore di partenza nel nostro progetto, possiamo estrarre qualsiasi dipendenza dal genitore semplicemente dichiarandolo nel nostro tag delle dipendenze .

Inoltre, non è necessario definire le versioni delle dipendenze, Maven scaricherà i file jar in base alla versione definita per il genitore di avviamento nel tag genitore.

Ad esempio, se stiamo creando un progetto web, possiamo aggiungere direttamente spring-boot-starter-web e non abbiamo bisogno di specificare la versione:

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

4. Il tag di gestione delle dipendenze

Per gestire una versione diversa di una dipendenza fornita dal genitore starter possiamo dichiarare la dipendenza e la sua versione esplicitamente nella sezione dependencyManagement :

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

5. Proprietà

Per modificare il valore di qualsiasi proprietà definita nel genitore starter, possiamo dichiararlo nuovamente nella nostra sezione delle proprietà.

La primavera-boot-starter-genitore attraverso la sua società di primavera-boot-dipendenze proprietà usi per la configurazione di tutte le versioni dipendenze, la versione di Java, e Maven plug-in versioni.

Pertanto, ci semplifica il controllo di queste configurazioni semplicemente modificando la proprietà corrispondente.

Se vogliamo cambiare la versione di qualsiasi dipendenza che vogliamo estrarre dal genitore di avviamento, possiamo aggiungere la dipendenza nel tag di dipendenza e configurare direttamente la sua proprietà:

 4.11 

6. Altre sostituzioni di proprietà

Possiamo anche utilizzare le proprietà per altre configurazioni come la gestione delle versioni dei plugin o anche per alcune configurazioni di base come la gestione della versione Java, la codifica sorgente.

Dobbiamo solo dichiarare nuovamente la proprietà con un nuovo valore.

Ad esempio, per cambiare la versione di Java possiamo indicarlo nella proprietà java.version :

 1.8 

7. Progetto Spring Boot senza Starter Parent

A volte abbiamo un genitore Maven personalizzato. Oppure, potremmo preferire dichiarare manualmente tutte le nostre configurazioni Maven.

In tal caso, potremmo scegliere di non utilizzare il progetto spring-boot-starter-genitore . Ma possiamo ancora trarre vantaggio dal suo albero delle dipendenze aggiungendo una dipendenza spring-boot-dependencies nel nostro progetto nell'ambito dell'importazione .

Spieghiamo questo con un semplice esempio in cui vogliamo utilizzare un altro genitore diverso dal genitore iniziale:

 com.baeldung spring-boot-parent 1.0.0-SNAPSHOT 

Qui, abbiamo usato parent-modules un progetto diverso come nostra dipendenza genitore.

Ora, in questo caso, possiamo ancora ottenere gli stessi vantaggi della gestione delle dipendenze aggiungendola in ambito di importazione e tipo di pom :

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

Inoltre, possiamo inserire qualsiasi dipendenza dichiarandola nelle dipendenze come abbiamo fatto nei nostri esempi precedenti. Non sono necessari numeri di versione per queste dipendenze.

8. Riepilogo

In questo tutorial, abbiamo fornito una panoramica di spring-boot-starter-parent e il vantaggio di aggiungerlo come genitore in qualsiasi progetto figlio.

Successivamente, abbiamo imparato a gestire le dipendenze. Possiamo sovrascrivere le dipendenze in dependencyManagement o tramite le proprietà.

Il codice sorgente per gli snippet utilizzati in questo tutorial è disponibile su Github, uno che utilizza il genitore iniziale e l'altro un genitore personalizzato.