maven中快照库和发布库的区别和作用

在使用maven的过程中,我们经常会有很多公共库在开发阶段处于不稳定状态,需要随时修改和发布,可能一天一次,甚至遇到bug一天n次。我们知道,maven的依赖管理是基于版本管理的。对于发布的神器,如果版本号相同,即使我们内部镜像服务器上的组件比本地新,maven也不会主动下载。如果在开发阶段基于正式发布版本做依赖管理,遇到这个问题就需要升级组件的版本号,但这显然不符合要求和实际情况。但如果是基于快照版本,问题会自发解决,maven为我们准备了这一切。

maven中有两种仓库,快照快照仓库和发布发布仓库。快照快照仓库用于存储开发过程中不稳定的版本,发布正式仓库用于存储稳定的发布版本。要将组件/模块定义为快照版本,只需在pom文件中的模块版本号后添加-SNAPSHOT(注意,此处必须大写),如下所示:

& ltgroupId & gtcc.mzone & lt/groupId & gt;

& ltartifactId & gtm 1 & lt;/artifact id & gt;

& lt版本& gt0.1-快照& lt/version & gt;

& lt包装& gtjar & lt/包装& gt

Maven2会根据模块的版本号(pom文件中的版本)中是否有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,mvn部署时会自动发布到快照版本库,而maven在编译和打包直接使用快照版本的模块时会自动从镜像服务器下载最新的快照版本,不需要更改版本号。如果是正式发布的版本,在MVN部署时会自动发布到正式版本库,但如果使用的是正式版本的模块,在编译打包时不会主动从镜像服务器下载,不会改变版本号。

因此,在开发阶段,我们可以将公共库的版本设置为快照版本,依赖组件引用快照版本进行开发。公共库的快照版本更新后,我们不需要修改pom文件提示的版本号就可以下载新版本。我们可以直接在mvn中执行相关的编译打包命令,重新下载最新的快照库,也方便了我们的开发。