2011-03-08 37 views
2

這聽起來很瘋狂,但我們的開發人員都在同一臺Linux機器上工作,這臺機器也有安裝nexus作爲我們的maven回購。實際上,每個人都會在他們的〜/ .m2 /文件夾中找到文件,這些文件也在nexus服務器中複製。有沒有辦法禁用本地的Maven倉庫?

是否有可能簡單地告訴maven僅查看nexus中的人工製品?

我目前在我們的全局maven配置中設置了屬性<localRepository>/path/to/global/repo</localRepository>,但不確定這是否會導致問題,如果兩個用戶同時抓取同一個文件。

我們這樣做是因爲公司不會購買我們強大的工作站,所以我們都ssh到我們的開發服務器。

回答

2

我不想將本地repo指向nexus數據存儲區,因爲安裝後會更新nexus後面的存儲庫數據存儲區。

但是你可以建立一個單一的「機器」本地回購分離的關係數據存儲,
然後爲每個用戶改變~/.m2/repository目錄是指向「機器」本地回購符號鏈接。

至少你將只有2份回購。

併發安裝和下載,仍然可能會互相破壞,但這可以用惱人的重做來解決。

更新:

有可用的新的解決方案。

TEAM(Takari擴展爲Apache Maven)擴展的安裝提供了一個線程安全的本地存儲庫和一個用於多模塊構建的改進算法。

http://takari.io/book/30-team-maven.html#concurrent-safe-local-repository

+0

感謝隊友,這是我在這個時間點正在做的事情,它似乎工作正常。不過,我只是將全局maven settings.xml文件改爲指向已知位置,而不是〜/ .m2/repository。它一直在工作,但正如你所建議的那樣,可能會有一個點可能會發生衝突:)感謝您的答案。 – 2011-03-08 23:28:26

+0

不推薦。 Maven本地存儲庫不應該被同時使用。 https://issues.apache.org/jira/browse/MNG-2802 – 2015-07-22 16:13:20

+0

除非你已經安裝了TEAM(Takari擴展爲Apache Maven)。這些擴展提供了線程安全的本地存儲庫和用於多模塊構建的改進算法。我留下了深刻的印象,請參閱http://takari.io/book/30-team-maven.html#concurrent-safe-local-repository – crowne 2015-07-23 08:38:20

4

我不確定這直接回答您的關注,但它看起來像你在做什麼是正確的。

http://maven.apache.org/settings.html

localRepository:這個值是此版本系統的本地 庫的路徑。默認值爲 $ {user.home} /。m2/repository。這個 元素對於 主構建服務器特別有用,允許所有 登錄用戶從共同的 本地存儲庫構建。

+0

感謝隊友,沒有意識到文檔實際上說明了我們正在做的事情,不知道我是如何錯過的:)謝謝。 – 2011-03-08 23:29:08

0

使用在命令行中 --offline 選項。

+1

,它禁用遠程存儲庫,並將本地存儲庫作爲唯一解決文件不是被問到的。 – crowne 2011-03-09 07:37:46

+1

哇。這確實幫助我解決了我的問題。謝謝 – 2011-05-20 21:56:05

+0

不客氣! – Luixv 2011-05-21 00:57:29

相關問題