¿Para qué sirven <parent> y <dependencyManagement> (BOM) en un pom?
Opciones
- Nombrar el proyecto y listar todos sus módulos
- Centralizar versiones para que los módulos sean coherentes (Opción correcta)
- Ejecutar los tests más rápido con threads paralelos
- Publicar el proyecto en Git en cada build
Respuesta
Centralizar las versiones para que muchas dependencias y módulos sean coherentes sin repetir números de versión
Por qué
<parent>: tu pom hereda la configuración de otro pom. spring-boot-starter-parent fija los valores por defecto de los plugins y las versiones de dependencias.
<dependencyManagement>: lista las versiones en un sitio. Los hijos y las dependencias omiten entonces <version>. Un BOM (Bill of Materials) es un pom que solo hace esto, como spring-boot-dependencies; lo importas y obtienes un conjunto probado de versiones compatibles.
Ventajas: menos conflictos, un solo sitio para actualizar, proyectos multimódulo alineados.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.0</version>
</parent>Recuerda
Pom padre o BOM = un sitio que decide las versiones.