2012-08-01 13 views
7

我們的Maven項目全部基於jenkins構建,然後將構件部署到Maven存儲庫。Jenkins爲Maven構建禁用或清除緩存

由於某些原因,當構建一個項目對其他剛剛構建的項目具有依賴關係時,似乎存在某種緩存或更新滯後。

說工件A和B的錯誤取決於A.現在我在本地修復錯誤,更新我在B中的依賴關係,運行B並且一切正常。我明顯檢查。現在,我在Jenkins上構建A,然後B。然後獲得新建的B並運行它。該錯誤仍然存​​在。幾小時後,如果我再次建立B,它會好心地得到新的A,錯誤消失..

所以必須有一種方法來強制jenkins在其服務器上使用新的A.使用mvn -umvn --update-snapshots不會有幫助。它會檢查更新和找不到..

+0

如果有一個配置的快照存儲庫的'',你可以檢查你的Maven settings.xml嗎?如果沒有,SNAPSHOT版本只能下載一次一天從遠程存儲庫。http:// maven。 apache.org/ref/3.0.4/maven-settings/settings.html#class_snapshots – 2012-08-01 10:44:40

回答

5

我相信在Maven/Jenkins中沒有這種緩存行爲可能,因爲所有快照都是在Jenkins的同一個實例中本地構建的。沒有必要使用「更新快照」選項,因爲您沒有從遠程倉庫獲取它。但是,我建議您查看Jenkins中的存儲庫設置。在Jenkins中,我們可以更改要使用的Maven存儲庫(默認情況下,它由整個機器共享,但可以更改爲每個工作空間或每個執行器等)(在您的項目配置中,在Build -> Advanced中,可以檢查「Use private Maven repository」,並在Manage Jenkins -> Configure System -> Maven Project Configuration,您可以選擇管理Local Maven Repository的方式。我懷疑你已經改成了「本地指派給執行」

如果你有事業的安裝在不同的倉庫構建任何設置那麼你可能遇到你遇到的問題