Maven - version de Spring Boot Starter
Je ne suis pas un expert des versions de démarreurs à ressort et j'ai rencontré des problèmes. J'essaye de construire mon projet avec ce démarreur à ressort . Et j'ai besoin que la version des bibliothèques intégrées soit 5.2.0 comme indiqué dans la description de ce fichier jar. Mais lorsque j'ai ajouté cette dépendance à mon projet, j'ai trouvé que les versions des bibliothèques intégrées étaient différentes de ce à quoi je m'attendais. Mes plugins maven montrent que les versions 5.1.6 et mon code ne se compilent pas car certaines classes dépendent des méthodes du module 5.2.0.
Et il y a encore une chose. Dans un autre projet, j'ai ajouté la même dépendance. Mais ce n'est pas grave, les versions sont les mêmes avec la description de maven repositoty. Il y a une différence entre ces deux projets. L'un d'eux avec la version Spring-Boot 2.1.9 (qui ne compile pas) et un autre - 2.3.4 (qui fonctionne bien). Et quand j'ai vérifié les versions de contenant dans les bibliothèques de démarrage via artefactId dans pom - elles sont correctes et 5.2.0.
Ici 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>
J'ai essayé de supprimer m2 repo avec toutes les dépendances maven, puis de télécharger à nouveau mais j'ai toujours un problème. J'ai fait une erreur dans pom.xml? Quelque chose ne va pas avec mon IntelliJ?
Versions de dépendance dans pom
Mauvaises versions du plugin
Corriger les versions dans le plugin
Réponses
Spring Boot gère plusieurs versions de dépendances afin que nous puissions nous assurer qu'elles sont compatibles les unes avec les autres.
Regardez ce fichier pom.xml pour voir quelle version des dépendances est gérée par Spring Boot 2.3.4.RELEASE. Vous pouvez modifier le numéro de version et voir les dépendances gérées dans cette version.
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.3.4.RELEASE/spring-boot-dependencies-2.3.4.RELEASE.pom
Avantages:
- Si vous souhaitez utiliser une dépendance en dehors de la liste de dépendances, vous n'avez pas besoin de spécifier la version dans dans votre pom.xml. Ou vérifiez s'il existe un démarreur à ressort officiel pour cette dépendance. S'il existe, utilisez simplement la dépendance spring-boot-starter. Encore une fois, pas besoin de spécifier la version.
- Spring extraira la dépendance qui fonctionne bien avec toutes les autres bibliothèques afin que vous n'obteniez pas d'erreur de compatibilité (exécution ou compilation)
- Lorsque vous mettez à niveau la version de Spring Boot, toutes les dépendances gérées seront mises à jour. Et aussi la compatibilité est maintenue.
Comment résoudre votre problème:
Dans votre pom.xml, vous n'avez pas besoin de spécifier la version pour spring-boot-starter-oauth2-resource-server. Cette bibliothèque est gérée par spring boot. Il semble que vous spécifiez la version 2.2.0 qui n'est pas compatible avec votre version 2.1.9 de Spring Boot.