首先要定位是否真的拉不到最新代码?
定位步骤如下:
1、在SVN上,查看show log,没有记录
2、登录Jenkins,查看构建的输出记录,Console Output,
ctrl+f,若找不到最新代码,则可以确定是拉不到最新代码啦。
3、检查Jenkins服务器时间与SVN服务器时间是不是真的不一致 ?
解决方法:
方法一: 把Jenkins服务器时间与SVN服务器时间调整成一致。(此方法使用过,是可以解决了)
方法二:
方法一解决了问题,但Jenkins的SVN插件是与时间戳相关的SVN revision吗?
查看某个Jenkins Job的构建日志,在使用SVN插件更新代码时,日志如下:
Updating svn://repository_path at revision '2015-08-06T08:48:12.490 +0800'
从上面可以看出来,该次构建相应的revision确实是构建时间戳。
那么,可以让Jenkins的SVN插件更新代码时,设置revision为HEAD吗?
答案是可以的,在SVN URL加@HEAD后缀即可,Jenkins的SVN插件是支持这个的。
在SVN URL加@HEAD后缀后,构建Jenkins Job后日志输出如下:
Updating svn://repository_path@HEAD
而且这样确保更新的代码是最新的,不会因为Jenkins服务器与SVN服务器之间的时间差受到影响。
注:HEAD是SVN revision关键字,表示版本库中的最新版本。