我们的Maven项目都在Jenkins上构建,然后将构件部署到Maven仓库。但是,如果构建一个依赖于其他新构建项目的项目时,似乎会出现某种缓存或更新滞后的问题。
比如说,构件A存在一个错误,而B依赖于A。现在我在本地修复了这个错误,在B中更新了我的依赖关系,并运行B,一切正常。我显然要检查一下代码,现在我在Jenkins上构建A,然后是B。然后我得到了新构建的B并运行它。错误还在。几个小时后,如果我再次构建B,它会善意地获得新的A,并且错误就消失了。
因此,必须有一种方法来强制Jenkins使用其服务器上的新A。使用"mvn -u"或"mvn --update-snapshots"都没有用。它只会检查更新并找不到任何更新...
比如说,构件A存在一个错误,而B依赖于A。现在我在本地修复了这个错误,在B中更新了我的依赖关系,并运行B,一切正常。我显然要检查一下代码,现在我在Jenkins上构建A,然后是B。然后我得到了新构建的B并运行它。错误还在。几个小时后,如果我再次构建B,它会善意地获得新的A,并且错误就消失了。
因此,必须有一种方法来强制Jenkins使用其服务器上的新A。使用"mvn -u"或"mvn --update-snapshots"都没有用。它只会检查更新并找不到任何更新...
<updatePolicy>
吗?如果没有的话,SNAPSHOT版本只会从远程仓库下载一次每天。参考链接:http://maven.apache.org/ref/3.0.4/maven-settings/settings.html#class_snapshots - Stefan Ferstl