Spring Boot Dependency Management con un genitore personalizzato

1. Panoramica

Spring Boot fornisce il POM padre per una creazione più semplice delle applicazioni Spring Boot.

Tuttavia, l' utilizzo del POM genitore potrebbe non essere sempre desiderabile, se abbiamo già un genitore da cui ereditare.

In questo breve tutorial, daremo un'occhiata a come possiamo ancora usare Boot senza lo starter genitore.

2. Spring Boot senza POM padre

Il genitore pom.xml si occupa della gestione delle dipendenze e dei plugin. Per questo motivo, l'ereditarietà da esso fornisce un prezioso supporto in un'applicazione, quindi di solito è la linea di condotta preferita quando si crea un'applicazione di avvio . Puoi trovare maggiori dettagli su come creare un'applicazione basata sullo starter principale nel nostro articolo precedente.

In pratica, tuttavia, potremmo essere vincolati da regole di progettazione o altre preferenze a utilizzare un genitore diverso.

Fortunatamente, Spring Boot offre un'alternativa all'ereditarietà dallo starter genitore, che può ancora permetterci alcuni dei suoi vantaggi.

Se non utilizziamo il POM genitore, possiamo comunque trarre vantaggio dalla gestione delle dipendenze aggiungendo l' artefatto spring-boot-dependencies con scope = import :

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

Successivamente, possiamo iniziare semplicemente ad aggiungere le dipendenze di Spring e a utilizzare le funzionalità di Spring Boot :

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

D'altra parte, senza il POM genitore, non beneficiamo più della gestione dei plugin. Ciò significa che dobbiamo aggiungere esplicitamente il plug-in spring-boot-maven :

   org.springframework.boot spring-boot-maven-plugin   

3. Sostituzione delle versioni delle dipendenze

Se vogliamo utilizzare una versione diversa per una certa dipendenza rispetto a quella gestita da Boot, dobbiamo dichiararla nella sezione dependencyManagement , prima di dichiarare spring-boot-dependencies :

   org.springframework.boot spring-boot-starter-data-jpa 1.5.5.RELEASE   // ... 

Al contrario, la semplice dichiarazione della versione per la dipendenza al di fuori del tag dependencyManagement non funzionerà più.

4. Conclusione

In questo breve tutorial, abbiamo visto come possiamo usare Spring Boot senza il genitore pom.xml.

Il codice sorgente per gli esempi può essere trovato su GitHub.