2016-04-22 28 views
0

我正在處理一個包含許多Maven模塊的大型項目。現在,我必須確保構建失敗時,在本地回購或新建的構建產品不可用。忽略來自遠程Maven回購的文物

到現在爲止,我在構建之前下載了所有必需的依賴關係,刪除了將在本地回購庫中新建的工件,並在離線模式下運行構建。

這是一個醜陋的解決方法,我知道這並不是最佳實踐,但我沒有其他選擇。所以我想知道是否有更簡單的方法可以忽略來自遠程回購的文物,或者告訴Maven只使用新建的文物。

編輯:實施例

我有一個超級POM和2個模塊的項目。

現在當前版本的超級pom是2.0.0-SNAPSHOT,但模塊參考版本1.0.0。在這種情況下,構建應該失敗。但實際上,它只是從遠程回購下載1.0.0版本的超級POM,並在最壞的情況下打破了構建。

這是有問題的,因爲我不是在控制回購,並且有些人因爲我只在幾個模塊上工作而出現了一些奇怪的版本問題,因此我的版本多次打破。

+0

Mult模塊構建?正在談論模塊間依賴關係還是其他依賴關係?可以舉一個更詳細的例子你的意思? – khmarbaise

回答

0

在我的工作環境中,我創建了單獨的POM文件供開發人員和官方構建使用。

對於開發商來說,那裏的POM指向,只能由開發本地在當地倉庫的.m2可以創建用戶特定組ID,使用類似com.mycompany.myproject.users。$ {用戶名}這阻止開發人員可以從公司maven存儲庫中獲取正式的工件。

使用官方建立的POMs com.mycompany.myproject作爲groupId,以便他們構建和使用端到端的官方文物。

現在,如果開發人員需要官方和本地工件的組合,則可以像這樣調整POM文件;然而,如果一個官方產品引入了一個下游依賴關係,那麼您最終可能會遇到令人討厭的依賴關係問題,而這個依賴關係也是您在本地構建的。問題是,類包裝是相同的,Maven可能不會選擇你期望的。