Maven 仓库分为 Snapshot 快照仓库和 Release 发行仓库两种类型的仓库。Snapshot 快照仓库用于保存 SNAPSHOT 版本,Release 发行仓库用于保存 RELEASE 版本。
SNAPSHOT 是一种特殊的版本标识,主要用于表示项目的不稳定、正在开发中的版本,而 RELEASE 则通常代表稳定版。快照版本模块在发布时,Maven 会为它打上时间戳,而依赖该快照版本模块构建的项目在进行构建时,Maven 则能从仓库中找到最新的 SNAPSHOT 版本文件。
与 RELEASE 版本号不同的是,在 pom.xml
中将版本号后加上 -SNAPSHOT
即可将组件或模块定义为快照版本,例如:
<groupId>com.abc.www</groupId>
<artifactId>appWeb</artifactId>
<version>1.0.0-SNAPSHOT</version>
而在默认情况下,对于快照版本模块,Maven 会每天从仓库中获取一次更新。用户也可以在任何 Maven 命令中使用 -U
参数强制 Maven 检查更新,例如:
mvn clean deploy -U
SNAPSHOT 版本模块和 RELEASE 版本模块的区别如下:
对比项 | SNAPSHOT 版本模块 | RELEASE 版本模块 |
---|---|---|
定义 | 版本号为 -SNAPSHOT 后缀结尾 | 版本号不为 -SNAPSHOT 后缀结尾 |
发布仓库 | Snapshot 快照仓库 | Release 发行仓库 |
自动更新 | 编译打包会从远程仓库上下载最新版本 | 编译打包不会从远程仓库下载最新版本 |
稳定性 | 不稳定 | 稳定 |
使用场景 | 开发过程中使用 | 正式发布时使用 |