关于maven中版本控制问题

来源:互联网 发布:知聊可以提现吗 编辑:程序博客网 时间:2024/05/16 23:36

maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)


maven2会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。

如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,会覆盖老的快照版本,而在使用快照版本的模块,在不更改版本号的情况下,

直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,

而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载

使用SNAPSHOT具有透明性,变更会直接生效,但这样会被依赖者带来不稳定性和不确定性,所以不应该被滥用


补充:

对于服务,biz是没有版本这一说的,运行的永远都是最新的版本,但是对于API是有版本的。

API提供接口,biz提供服务,一般来说,版本往上升的话,API只增不减,而biz也随之增加实现,如果新版本删除了某个接口及实现,而调用者使用old version的依赖,尝试调用这个接口,就会调不到产生错误。



原创粉丝点击