今天遇到一个问题,最近在写一个通道只是提供能力的一个服务,给别的服务通过pom坐标的形式进行依赖,当我们修改了这里面的代码后推到仓库里面,那么依赖的服务重新部署怎么知道他依赖的包发生了改变要重新拉取进行编译呢,这里就说到了两个关键字SNAPSHOT和RELEASE
SNAPSHOT
我们都知道确定一个jar包是通过groupId和artifactId和version来定位,这时候如果版本号没改变,但是改变了代码,那么依赖该坐标的服务没办法识别到其进行了修改,所以我们通过在版本号上面添加关键字SNAPSHOT来向依赖该坐标的服务说明当前坐标是会发生改变的要去拉取最新的jar包不可以使用本地缓存的jar,这样即使版本号不变通过关键字也可以做到动态的去拉取最细的代码
<groupId>springbootParent</groupId>
<artifactId>mySpringbootParent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
RELEASE
有的时候我们的服务是部署在正式环境,只要有一点修改都需要发版本和打tag,那么就需要用到RELEASE这个关键字是不允许修改的,如果修改必须要修改版本号,这里简单来说就是如果我们的正式包依赖了三方仓库的一个1.0-SNAPSHOT版本的包,如果我们不使用RELEASE的话如果三方对该1.0-SNAPSHOT的包进行了修改且推到了仓库那么我们的正式服务就会实时的去到对方仓库拉到最新的代码可能会引发报错,而使用了RELEASE就会先判断本次仓库是否有这个包,如果有就是用本地的如果没有采取拉
<groupId>springbootParent</groupId>
<artifactId>mySpringbootParent</artifactId>
<packaging>pom</packaging>
<version>1.0-RELEASE</version>
|