版本管理
→ 返回构建工具
版本号规范
推荐遵循 语义化版本(SemVer):
主版本.次版本.修订版本[-预发布标识]
例:1.2.3 / 2.0.0-RC1 / 3.1.0-SNAPSHOT
| 变更类型 | 升级位 |
|---|---|
| 不兼容的 API 变更 | 主版本(MAJOR) |
| 向后兼容的新功能 | 次版本(MINOR) |
| 向后兼容的 bug 修复 | 修订版本(PATCH) |
SNAPSHOT 与 RELEASE
| 类型 | 说明 | 可重复部署 |
|---|---|---|
1.0.0-SNAPSHOT | 开发中的快照版本 | 是(每次都拉取最新) |
1.0.0 | 正式发布版本 | 否(不可变) |
快照版本仅用于开发阶段,发布前必须去掉 -SNAPSHOT。
Maven 版本管理
dependencyManagement — 在父 pom 中集中声明版本,子模块引用时无需重复指定:
<!-- 父 pom -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 子模块,无需写 version -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>属性统一管理版本号:
<properties>
<java.version>17</java.version>
<spring-boot.version>3.2.0</spring-boot.version>
</properties>Versions Maven Plugin:
mvn versions:display-dependency-updates # 检查可升级的依赖
mvn versions:display-plugin-updates # 检查可升级的插件Gradle 版本管理
Version Catalog(推荐,Gradle 7.4+)— 统一在 gradle/libs.versions.toml 中管理:
[versions]
spring-boot = "3.2.0"
[libraries]
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web", version.ref = "spring-boot" }
[plugins]
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }// build.gradle.kts
dependencies {
implementation(libs.spring.boot.starter.web)
}Dependency Locking — 锁定精确版本,保证构建可重现:
./gradlew dependencies --write-locks # 生成 gradle.lockfileBOM(Bill of Materials)
→ 查看依赖管理
一个只含 <dependencyManagement> 的特殊 pom,统一管理一组相关依赖的版本。
常见 BOM:spring-boot-dependencies / spring-cloud-dependencies / jackson-bom