在Nexus仓库中,一个仓库一般分为public(Release)仓库和SNAPSHOT仓。前者存放正式版本,后者存放快照版本。
在项目pom.xml中,指定版本号带-SNAPSHOT,那么打出的包就是一个快照版本。
快照版本和正式版本的区别:
本地获取这些依赖的机制不同。
如果你依赖一个库的正式版本,构建的时候,先在本地仓库中查找是否已经有了这个依赖库,如果没有的话才会去远程仓库去拉取。如果发布一个xxx-1.1.jar到远程仓库,有一个项目依赖这个库,第一次构建会把这个jar拿到本地仓库中,以后再构建就不会去访问远程仓库了。你修改了代码发布上去,也不会再拉,本地这个库不能得到更新。除非升级这个版本 xxx-1.2.jar,然后通知项目,修改依赖为这个版本。
如果构建频繁会疯掉。
那么使用-SNAPSHOT,每天构建时构建快照版本,xxx-1.1-SNAPSHOT,如果有则下载来使用。即使本地仓库已经有,也会去访问远程仓库,看是否是最新的。
在配置Maven的Repository的时候,有个配置项,可以配置对SNAPSHOT版本向远程仓库的查找频率。分别always,daily(第一次,当天的其他时候不查看),interval(设置一个以分钟为单位的间隔),never。