今天看《Maven实战》,发现一个以前忽略的问题,就是在新建maven工程中的pom文件中版本号总是写成下面这样的:
<version>0.0.1-SNAPSHOT</version>
一直也不理解为什么这么写,以为是一种新建工程的规范。今天才知道这样写是将maven工程的版本标记为快照版本。下面举个例子说一下快照版本的应用场景。
现在小A在开发A项目,小C(别问我小B去哪了…)在开发C项目,而且C项目中需要依赖A项目的部分功能,所以小C需要在自己工程的pom文件中加入一个A项目的依赖。因为小A在开发A项目,需要经常对A项目build,然后新功能给小C使用。那么小C如何获取最新的A项目呢?
方案一:
小C自己签出项目A的代码进行构建。【版本控制、maven构建、构建出问题还需要自己解决→→低效】
方案二:
小A每次发布项目到私仓后,小C删除本地仓库的项目A,然后构建自己的项目。【手工干预→→不合理】
方案三:
小A每次发布新的版本号0.0.2,0.0.3,0.0.4…,两人进行频繁的版本更新。【版本号滥用】
使用快照版本就可以解决上述问题,当版本号加上标识-SNAPSHOT后,发布到私仓时会自动为构件打上时间戳,比如1.0-20160922.185543-2就表示2016年9月22日18点55分43秒第2次快照。所以当小C依赖A项目,发现是快照版本的项目,会直接去私仓中检查A的是否有最新构件,然后使用。
当然,在项目完成发布时,需要将快照版本改为稳定版本,即2.1之类的。
Maven的配置文件中版本使用-SNAPSHOT
最新推荐文章于 2024-09-08 06:15:54 发布