首先要定位是否真的拉不到最新代碼?服務器
定位步驟以下:svn
一、在SVN上,查看show log,沒有記錄.net
二、登陸Jenkins,查看構建的輸出記錄,Console Output,插件
ctrl+f,若找不到最新代碼,則能夠肯定是拉不到最新代碼啦。日誌
三、檢查Jenkins服務器時間與SVN服務器時間是否是真的不一致 ?blog
解決方法:get
方法一: 把Jenkins服務器時間與SVN服務器時間調整成一致。(此方法使用過,是能夠解決了)it
輸入date查看服務器時間io
輸入要修改爲的時間 date -s "2019-04-08 16:34:00"登錄
方法二:
方法一解決了問題,但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關鍵字,表示版本庫中的最新版本。