Maven - versión de Spring Boot Starter
No soy un experto en versiones de arrancadores de arranque de primavera y me he enfrentado a un problema. Estoy intentando construir mi proyecto con este arrancador de arranque de primavera . Y necesito que la versión de las bibliotecas integradas sea 5.2.0 como dice en la descripción de este archivo jar. Pero cuando agregué esta dependencia a mi proyecto, descubrí que las versiones de las bibliotecas integradas son diferentes de lo que esperaba. Mis complementos de maven muestran que las versiones 5.1.6 y mi código no se compilan porque algunas clases dependen de métodos del módulo 5.2.0.
Y hay una cosa más. En otro proyecto agregué la misma dependencia. Pero está bien, las versiones son las mismas con la descripción del repositorio de maven. Hay una diferencia entre estos dos proyectos. Uno de ellos con Spring-boot versión 2.1.9 (que no se compila) y otro - 2.3.4 (que funciona bien). Y cuando verifiqué las versiones de contener en bibliotecas de inicio a través de artefactId en pom, están bien y 5.2.0.
Aquí pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>adapters</artifactId>
<groupId>com.alarislabs</groupId>
<version>0.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>security</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
</dependencies>
Intenté eliminar el repositorio m2 con todas las dependencias de maven y luego descargarlo de nuevo, pero todavía tengo problemas. ¿He cometido un error en pom.xml? ¿Quizás hay algún problema con mi IntelliJ?
Versiones de dependencia en pom
Versiones incorrectas en el complemento
Versiones correctas en el complemento
Respuestas
Spring Boot gestiona varias versiones de dependencias para que podamos asegurarnos de que sean compatibles entre sí.
Mire este archivo pom.xml para ver qué versiones de dependencias son administradas por Spring Boot 2.3.4.RELEASE. Puede cambiar el número de versión y ver las dependencias administradas en esa versión.
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.3.4.RELEASE/spring-boot-dependencies-2.3.4.RELEASE.pom
Beneficios:
- Si desea usar una dependencia fuera de la lista de dependencias, no necesita especificar la versión en su pom.xml. O verifique si existe un arrancador de arranque de primavera oficial para esa dependencia. Si existe, simplemente use la dependencia spring-boot-starter. Nuevamente, no es necesario especificar la versión.
- Spring extraerá la dependencia que funciona bien con todas las demás bibliotecas para que no obtenga un error de compatibilidad (tiempo de ejecución o tiempo de compilación)
- Cuando actualice la versión de Spring Boot, todas las dependencias administradas se actualizarán. Y también se mantiene la compatibilidad.
Cómo solucionar tu problema:
En su pom.xml, no necesita especificar la versión para spring-boot-starter-oauth2-resource-server. Esta biblioteca está administrada por Spring Boot. Parece que está especificando la versión 2.2.0 que no es compatible con su versión 2.1.9 de Spring Boot.