今天出现jenkins自动编译无法获取私服最新snapshot的Jar包的问题。解决方法如下:
即使是代SNAPSHOT后后缀的快照包,也不能保证每次编译获取到最新的,默认有一个更新策略,为了保证每一次获取到最新的jar包,我们
可以修改这个策略;
1.配置pom检查快照依赖:
找到pom的repositories配置节点,配置Snapshots节点,注意要找到if_snapshots这个url,修改snapshot的enabled为true,并设置updatePolicy为alaways:
<id>Snapshots</id> <url>http://192.168.xx.xx:xxxx/nexus/content/repositories/if_snapshots/</url> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> 这个url就是我们配置的快照仓库地址,我们指定了updatePolicy是alaways,每次编译都保证可以获取到最新的包。
2.编译时检查依赖:
修改make打包脚本,添加-U参数,如:mvn clean install package -U -DskipTests=true,-U参数的含义是update-snapshots,保证可以更新快照包。
建议添加上述两点,这样工程在每次编译的时候,都会获取到最新的快照依赖包。否则即使更新了jar包到maven私服,持续集成那边构建的时候,也不能立即
获取到最新的包。有时候我们想立刻更新一个私服上的jar包,编译时却获取不到最新的,浪费很多时间。