To start your application using a different Spring Boot version

To start your application using a different Spring Boot version by configuring the pom.xml, follow these steps:


Configuring pom.xml for Runtime Spring Boot Version Switching

  1. Set the Spring Boot Version as a Maven Property: Define the Spring Boot version using a property in the pom.xml, allowing it to be overridden at runtime.

    <properties> <spring.boot.version>2.5.15</spring.boot.version> <!-- Default Version --> </properties>

  2. Use dependencyManagement for Spring Boot Dependencies: Import the Spring Boot BOM (Bill of Materials) using the defined version property. This ensures all Spring Boot dependencies use the specified version.

    <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

  3. Add Spring Boot Dependencies as Usual: Use Spring Boot dependencies without specifying their version, as the BOM ensures they inherit the correct version.

    复制代码

    <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> </dependencies>

  4. Override the Version at Build or Runtime: You can specify a different Spring Boot version by overriding the property when building or running the application.

    Build Time:

    mvn clean package -Dspring.boot.version=2.3.12.RELEASE

    Runtime (with Executable JAR): If you have already built the application but want to run it with a different version:

    • Ensure the dependencies are not embedded in the JAR (spring-boot-maven-plugin configuration).
    • Provide the required version in the classpath at runtime.

    java -Dspring.boot.version=2.3.12.RELEASE -jar target/your-app.jar


Example pom.xml for Dynamic Version Switching

Here is a complete example of a pom.xml that supports switching Spring Boot versions:

<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"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>spring-boot-version-switch</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <properties> <!-- Define the Spring Boot version property --> <spring.boot.version>2.5.15</spring.boot.version> <java.version>1.8</java.version> </properties> <dependencyManagement> <dependencies> <!-- Import Spring Boot dependencies dynamically --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Add your Spring Boot dependencies without specifying versions --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> </plugins> </build> </project>


How to Test Different Versions

  • Default Version:

    mvn clean package

  • Different Version (e.g., 2.3.12.RELEASE):

    mvn clean package -Dspring.boot.version=2.3.12.RELEASE

The dependencies will automatically switch to the specified version

相关推荐
Mr__Miss1 分钟前
Java 随机数生成器选型指南:Random、ThreadLocalRandom 与 SecureRandom
java·开发语言·python
Wang's Blog6 分钟前
Go-Zero基础入门5: 探究go-zero如何基于gRPC扩展客户端
开发语言·后端·golang·go-zero
if_you_can_please_do8 分钟前
IDEA插件Maven开发版本管理小助手Maven With Me更新2.9.x版本啦,升版、快速搜索依赖、JDK切换等核心功能助力中大厂业务快速开发与迭代!
java·maven·intellij-idea
zzz_236822 分钟前
【Java实习面试算法冲刺】动态规划
java·算法·面试
小堂子这厢有礼了22 分钟前
Chet.QuartzNet.UI v2.3.0 大更新!表格重构 + 系统配置 + 分析页全面升级!
前端·后端·ui·重构·c#·vue
cfm_291426 分钟前
SpringBoot自定义Starter
java·spring boot·后端
触底反弹28 分钟前
⚡ Promise.all 性能优化:让 Agent 的工具调用飞起来
javascript·人工智能·后端
霸道流氓气质31 分钟前
Windows 本地搭建 CDC 全链路测试环境(Kafka+Canel+binlog+SpringBoot)
windows·spring boot·kafka
程序员爱钓鱼33 分钟前
Rust 控制流 if 详解:条件判断与 if 表达式
前端·后端·rust
Demon_Hao40 分钟前
Spring Boot 4、JDK 25 与 GraalVM:Java 云原生进化,能否撼动 Go 的地位?
java·spring boot·云原生