El padre de Spring Boot Starter

1. Introducción

En este tutorial, aprenderemos sobre spring-boot-starter-parent y cómo podemos beneficiarnos de él para una mejor administración de dependencias, configuraciones predeterminadas para complementos y compilaremos rápidamente nuestras aplicaciones Spring Boot .

También veremos cómo podemos anular las versiones de las dependencias y propiedades existentes proporcionadas por starter-parent.

2. Spring Boot Starter Parent

El proyecto spring-boot-starter-parent es un proyecto inicial especial, que proporciona configuraciones predeterminadas para nuestra aplicación y un árbol de dependencias completo para construir rápidamente nuestro proyecto Spring Boot .

También proporciona la configuración predeterminada para los complementos de Maven, como maven-failsafe-plugin , maven-jar-plugin , maven-surefire-plugin , maven-war-plugin .

Más allá de eso, también hereda la gestión de dependencias de spring-boot-dependencies, que es el padre del s pring-boot-starter-parent .

Podemos comenzar a usarlo en nuestro proyecto agregando esto como padre en el pom.xml de nuestro proyecto :

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

Siempre podemos obtener la última versión de spring-boot-starter-parent de Maven Central.

3. Gestión de dependencias

Una vez que hayamos declarado el padre inicial en nuestro proyecto, podemos extraer cualquier dependencia del padre simplemente declarándola en nuestra etiqueta de dependencias .

Además, no necesitamos definir versiones de las dependencias, Maven descargará archivos jar según la versión definida para el padre inicial en la etiqueta principal.

Por ejemplo, si estamos construyendo un proyecto web, podemos agregar spring-boot-starter-web directamente, y no necesitamos especificar la versión:

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

4. La etiqueta de gestión de dependencias

Para administrar una versión diferente de una dependencia proporcionada por el padre de inicio, podemos declarar la dependencia y su versión explícitamente en la sección dependencyManagement :

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

5. Propiedades

Para cambiar el valor de cualquier propiedad definida en el padre de inicio, podemos volver a declararlo en nuestra sección de propiedades.

El resorte de arranque-motor de arranque y los padres a través de sus padres primavera-boot-dependencias propiedades usos para configurar todas las versiones dependencias, la versión de Java, y Maven plugin de versiones.

Por lo tanto, nos facilita el control de estas configuraciones simplemente cambiando la propiedad correspondiente.

Si queremos cambiar la versión de cualquier dependencia que queramos extraer del padre de inicio, podemos agregar la dependencia en la etiqueta de dependencia y configurar directamente su propiedad:

 4.11 

6. Otras anulaciones de propiedad

También podemos usar propiedades para otras configuraciones, como administrar versiones de complementos o incluso para algunas configuraciones básicas, como administrar la versión de Java, codificación de origen.

Solo necesitamos volver a declarar la propiedad con un nuevo valor.

Por ejemplo, para cambiar la versión de Java podemos indicarlo en la propiedad java.version :

 1.8 

7. Proyecto Spring Boot sin padre inicial

A veces tenemos un padre Maven personalizado. O quizás prefiramos declarar todas nuestras configuraciones de Maven manualmente.

En ese caso, podemos optar por no usar el proyecto spring-boot-starter-parent . Pero, aún podemos beneficiarnos de su árbol de dependencias agregando una dependencia spring-boot-dependencies en nuestro proyecto en el alcance de importación .

Expliquemos esto con un ejemplo simple en el que queremos usar otro padre que no sea el padre inicial:

 com.baeldung spring-boot-parent 1.0.0-SNAPSHOT 

Aquí, hemos utilizado parent-modules en un proyecto diferente como nuestra dependencia principal.

Ahora, en este caso, aún podemos obtener los mismos beneficios de la administración de dependencias agregándola en el alcance de importación y el tipo de pom :

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

Además, podemos extraer cualquier dependencia simplemente declarándola en dependencias como hicimos en nuestros ejemplos anteriores. No se necesitan números de versión para esas dependencias.

8. Resumen

En este tutorial, hemos dado una descripción general de spring-boot-starter-parent y el beneficio de agregarlo como padre en cualquier proyecto hijo.

A continuación, aprendimos cómo administrar las dependencias. Podemos anular las dependencias en dependencyManagement o mediante propiedades.

El código fuente de los fragmentos utilizados en este tutorial está disponible en Github, uno usa el padre inicial y el otro un padre personalizado.