全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 5 分钟 ✍️ juanwangdev

坐标与版本管理

Maven 坐标用于唯一定位构件,版本管理区分开发与发布阶段。

坐标组成

GAV 三要素

XML
<dependency>
  <groupId>com.example</groupId>      <!-- 组织标识 -->
  <artifactId>my-app</artifactId>     <!-- 项目名称 -->
  <version>1.0.0</version>            <!-- 版本号 -->
</dependency>

元素说明

元素必填说明示例
groupId组织/公司/项目组com.example、org.springframework
artifactId项目/模块名my-app、spring-core
version版本号1.0.0、2.3.5.RELEASE

完整坐标格式

XML
groupId:artifactId:version[:packaging][:classifier]
com.example:my-app:1.0.0:jar
org.springframework:spring-core:5.3.0

版本号规范

标准版本格式

XML
主版本.次版本.增量版本-里程碑版本
1.0.0
2.1.3-SNAPSHOT
3.0.0-RC1

版本号含义

部分说明变化时机
主版本架构变更不兼容的重大更新
次版本功能增加兼容的功能扩展
增量版本Bug修复小修复、优化
里程碑开发阶段SNAPSHOT、RC、GA

SNAPSHOT 与 RELEASE

区别对比

特性SNAPSHOTRELEASE
状态开发版正式版
稳定性不稳定,持续更新稳定,不变
发布频率随时更新正式发布后固定
仓库快照仓库正式仓库
缓存每次检查更新本地缓存优先

SNAPSHOT 示例

Bash
<!-- 开发阶段使用 SNAPSHOT -->
<dependency>
  <groupId>com.example</groupId>
  <artifactId>my-lib</artifactId>
  <version>1.0.0-SNAPSHOT</version>
</dependency>

SNAPSHOT 版本每次构建都会检查远程仓库是否有更新。

RELEASE 示例

text
<!-- 正式版本使用 RELEASE -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.3.20</version>
</dependency>

版本里程碑标识

标识说明
SNAPSHOT开发快照版,不稳定
ALPHA内部测试版
BETA公开测试版
RCRelease Candidate,候选发布版
GAGeneral Availability,正式发布版
RELEASE正式发布版

版本冲突解决

决策规则

规则说明
最短路径优先依赖层级少的优先
声明顺序优先同层级先声明优先
最近版本优先距离项目最近的版本

查看依赖树

text
mvn dependency:tree

输出示例:

text
[INFO] com.example:my-app:jar:1.0.0
[INFO] +- org.springframework:spring-core:jar:5.3.0
[INFO] +- commons-logging:commons-logging:jar:1.2

要点总结

  • GAV 坐标唯一标识构件:groupId、artifactId、version
  • SNAPSHOT 用于开发阶段,RELEASE 用于正式发布
  • 版本格式:主版本.次版本.增量版本-里程碑
  • 使用 dependency:tree 查看依赖树定位冲突

📝 发现内容有误?点击此处直接编辑

← 上一篇 Maven 简介与安装配置
下一篇 → 约定优于配置原则
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库