2012-06-06 75 views
4

我有一個pom文件,首先是我自己的存儲庫,然後是一組公共存儲庫(repo1,repo2,java.net等)。假設所有的都是「釋放」存儲庫。如何避免maven向公共倉庫請求私人工件?

我的問題是,maven向所有存儲庫請求我們的內部jar,要麼第一次下載jar,要麼驗證metadata.xml,如果版本控制的範圍是「(1.0.0, 「

如何申請某種過濾器來說明類似的組ID只foo.bar屬於資源庫‘1.1.0]富’

這種情況令我煩惱的原因有兩個:一個是那麼在公共服務器上執行這些請求會浪費帶寬(並且當服務器速度很慢時,它會降低所有內容的速度),其次它會將我們內部軟件包的名稱公開到外部世界的日誌文件中。

我不想部署本地代理或類似的東西,只想要某個組ID(或列表)總是去某個存儲庫。即使對於非私人工件,它也會有助於指定某個工件位於某個存儲庫上,這些工件不在公共通用工件(repo.maven,download.java)中,因此可以避免這些冗餘請求。

+0

我知道你說你不喜歡本地代理,但不應該有任何有用的本地存儲庫軟件還包括提供公共存儲庫的簡單本地代理的能力? –

+0

我的本地存儲庫是一個簡單的webdav啓用Apache。我不想設置任何比這更復雜的東西。 –

+0

讓我進一步解釋:本地存儲庫的目的是簡單和整潔,因爲我可以隨時清理它並重建Jenkins中的相關工件,而且我不想代理和使用本地磁盤資源。出於同樣的原因,我不想通過詢問每個存儲庫中的每個工件來使用http請求資源,特別是不會將內部請求存入公共的。 –

回答

2

我們使用內部的Nexus實例並在那裏配置了這樣的東西。 Nexus有Administration -> Routing選項,您可以在其中爲groupId定義掩碼並指定應使用哪些存儲庫。

當然,它需要內部Nexus成爲開發人員使用的唯一存儲庫,然後配置任何外部存儲庫以進行代理或鏡像。