我希望我們的功能測試能夠使用類路徑中快照的時間戳版本(例如api-0.5.0-20110706.191935-1.jar)從Maven運行。但是,雖然我可以看到我們的時間戳版本位於Artifactory存儲庫中,但Maven指的是api-0.5.0-SNAPSHOT.jar並從本地存儲庫中解析它。Maven:如何確保在類路徑中使用時間戳版本的快照?
背景 我們的持續集成(CI)服務器有兩個相關的構建版本。服務器版本運行mvn deploy
,新的快照在正確構建的存儲庫中啓動。
我們還有一個功能測試版本,它獲取最新的正確版本,部署到開發服務器,然後開始對它進行測試。
看來正在發生的事情是功能測試版本依賴於API-0.5.0-SNAPSHOT.jar。當Server構建運行時,它將替換本地存儲庫中的快照,並且我們開始從功能測試構建中獲取NoClassDeFond錯誤。
因此,我想功能測試版本使用時間戳版本。
選項我目前知道的:
- 聲明在POM快照庫,並確保uniqueVersion是真實的(我很快就要構建嘗試此)。
- 使用
version lock:snapshots
目標將pom中的版本設置爲時間戳版本。 - 考慮在CI服務器的一次調用中運行服務器構建和功能測試。 (即刪除服務器版本)。
你能提供一個發佈算法的鏈接嗎?我發佈了一個類似的問題,因爲我們在定位時遇到了問題。 –
如果您提供鏈接,請回答以下問題:http://stackoverflow.com/questions/7662009/which-jar-ends-up-on-the-classpath-in-a-maven-incremental-build –