web-dev-qa-db-fra.com

Comment mettre à niveau la version Spring dans Spring Boot

Existe-t-il un didacticiel sur la mise à niveau de la version Spring vers Spring 5.0? Je ne trouve pas la version Spring dans mon pom.xml.

J'ai trouvé ceci: https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x#upgrading-to-version-5

Mais il ne donne pas d'instructions sur l'endroit où modifier réellement le numéro de version.

J'utilise Spring Boot 1.3. Si je passe à Spring Boot 2.0, cela mettra-t-il automatiquement ma version Spring à 5?

Merci!

9
user3133300

Un projet Spring Boot (c'est-à-dire un projet utilisant des dépendances Spring Boot) ne doit pas définir explicitement les dépendances Spring individuelles. Ces dépendances sont tirées par l'artefact principal Spring Boot que vous avez déclaré. Cela se fait généralement via le spring-boot-starter-parent que vous déclarez comme le pom parent de votre projet.
Et c'est un grand avantage de Spring Boot qui vous évite d'identifier et de déclarer des dépendances qui fonctionnent parfaitement ensemble.
Pour mettre à jour votre projet vers Spring 5 (la version actuelle), vous devez mettre à jour le spring-boot-starter-parent déclaration parent de 1.3 à 2.X (ou le spring-boot-dependencies 'version de dépendance si vous n'utilisez pas le parent de démarrage).
Vous pouvez en effet lire dans la note de sortie de Spring Boot 2 que:

Spring Boot 2.0 s'appuie sur et requiert Spring Framework 5.

Notez que la mise à jour de Spring Boot 1.3 (une version assez ancienne) vers Spring Boot 2 (une version très récente) peut avoir pour conséquence quelques régressions pour votre application.
Vous devez donc prendre soin de tester soigneusement votre demande afin de toutes les identifier.
Le Spring-Boot-2.0-Migration-Guide est également une bonne ressource pour faciliter la migration.


Pour vérifier la version des dépendances Spring tirées par Spring Boot, vous pouvez compter sur le dependency:tree objectif.
Voici un extrait de ce que vous obtenez en déclarant org.springframework.boot:spring-boot-starter:jar:2.0.2.RELEASE en tant que parent de votre projet:

 Dépendance $ mvn: arborescence 
 [INFO] Recherche de projets ... 
 [INFO] 
 [INFO] ---------- ------------------------------------------             
[INFO] Building demo 0.0.1-SNAPSHOT 
 [INFO] -------------------------------- [jar] --------------------------------- 
 [INFO] 
 [INFO] - - maven-dependency-plugin: 3.0.2: tree (default-cli) @ demo --- 
 [INFO] com.example: demo: jar: 0.0.1-SNAPSHOT 
 [ INFO] + - org.springframework.boot: spring-boot-starter: jar: 2.0.2.RELEASE: compile 
 [INFO] | + - org.springframework.boot: spring-boot: jar: 2.0.2.RELEASE: compile 
 [INFO] | |\- org.springframework: spring-context: jar: 5.0.6.RELEASE: compile 
 [INFO] | | + - org.springframework: spring-aop: jar: 5.0.6.RELEASE: compile 
 [INFO] | | + - org.springframework: spring-beans: jar: 5.0.6.RELEASE: compile 
 [INFO] | |\- org.springframework: spring-expression: jar: 5.0.6.RELEASE: compile 
 [INFO] | + - org.springframework.boot: spring-boot-autoconfigure: jar: 2.0.2.RELEASE: compile 
 [INFO] | + - org.springframework.boot: spring-boot-starter-logging: jar: 2.0.2.RELEASE: compile` 
 ... 

Vous pouvez effectuer un test de "dry run" en générant un exemple de projet via https://start.spring.io/

13
davidxxx

Vous pouvez trouver la version Spring Framwork de spring-boot-starter-X en vérifiant son pom.xml. Accédez à son pom parent jusqu'à ce que vous arriviez à spring-boot-dependencies-VERSION.pom. Avec InteliiJ, dans le fichier pom, je peux facilement accéder au pom parent en cliquant sur la référence dans le fichier. Je suppose (ou j'espère) que vous pouvez faire de même dans d'autres IDE. Recherchez la propriété <spring.version>, c'est la version Spring Framwork.

Par exemple, j'utilise spring-boot-starter-web-1.3.8.RELEASE.jar. Son pom parent est spring-boot-dependencies-1.3.8.RELEASE qui inclut la propriété <spring.version> avec la valeur 4.2.8.RELEASE.

Vous pouvez modifier la version Spring Framwork en remplaçant cette propriété dans votre pom qui inclut spring-boot-starter-X dépendance, mais c'est non recommandé . Notez également que le nom de la propriété était changé en spring-framework.version sur les versions ultérieures.

0
KernelMode