2014-04-02 60 views
0

我在我的網絡上有一個nexus回購。在構建服務器上的settings.xml我們我應該在settings.xml中使用mirrorOf *來定義Maven倉庫?

<mirror> 
    <id>company.com</id> 
    <name>nexus</name> 
    <url>http://build.company.com/nexus/content/groups/public/</url> 
    <mirrorOf>*</mirrorOf> 
</mirror> 

在我們擁有一批公共回購協議定義的代理庫的這個版本的服務器,我有一個託管回購一些商業許可的文物。

以及輪廓 - Maven的離不開這個解決我的父POM(神器關係):

<profiles> 
    <profile> 
    <id>repos</id> 
    <repositories> 
     <repository> 
     <id>my-local-repo</id> 
     <name>bootstrapthingy</name> 
     <url>http://build.company.com/nexus/content/groups/public/</url> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
      <checksumPolicy>fail</checksumPolicy> 
      <updatePolicy>always</updatePolicy> 
     </snapshots> 
     </repository> 
    </repositories> 
    </profile> 
</profiles> 
<activeProfiles> 
    <activeProfile>repos</activeProfile> 
</activeProfiles> 

我的問題今天:

我也刪除了所有我

<repositories> 

所有項目(最終應該!)繼承,並且一切似乎都有效。

這是否好,好?當我和maven合作時,我似乎最終想到了最佳實踐 - 最近,在哪裏應該保存信息?

正如我的倉庫是在水平的Nexus現在定義,還有就是我建立的元素不再是源代碼控制,這困擾着我。

+0

使用「鏡像任何」是一個非常糟糕的做法。您放棄了具有不同可見性和工件類型的多個存儲庫(例如快照與版本或項目依賴關係與構建插件)的所有靈活性。 – JBaruch

+1

如果他在Nexus服務器上拆分工件類型,併爲開發人員提供「一體化」存儲庫組,我真的在mirrorOf *中看不到任何缺點 - - 甚至會將所有工作分開嗎?做什麼的?插件和工件都位於中央 - 通過groupId進行區分。這很好。不要過分的東西:) – wemu

+2

我認爲你在正確的軌道上。請參閱@ wemu的答案。此外,爲了防萬一,我建議你還在你的settings.xml中添加一個''(指向同一個組)。 – carlspring

回答

1

是的,我會認爲你是在正確的軌道上!

Maven的建議考慮您的基礎架構和計劃吧!由此,它從基礎設施方面分解項目問題。項目具體配置進入pom.xml的,而我會投票把基礎設施​​的配置到settings.xml中

所以公司鏡/代理進入的settings.xml(如基礎設施可能會改變),其認證和環境設置沿(這是項目獨立的!)

一般項目不依賴於每個項目庫。如果他們這樣做,幾乎在任何情況下都可以使用nexus服務器(可以說明顯的SNAPSHOT依賴關係)。因此,在pom.xml中沒有存儲庫的做法是可以的。 URL的更改和構建不應請求位於不同位置的工件。它危及你的構建再現能力(如將各種不穩定的遠程回購添加到聯結中)。

我認爲你需要考慮(或簡單地確認)是建立在項目公司中都沒有自我維持。大多數開源項目都是因爲他們沒有共同的基礎設施,他們可能會從中受益(或受到影響)。您需要盡力而爲,但在settings.xml中解決基礎結構問題也意味着該項目不再需要這樣做。有Pro和Con的 - 毫無疑問:)

+0

感謝您的回覆。我找到了一個頁面來描述這個難題http://javamoods.blogspot.co.uk/2009/03/maven-repositories-put-in-pom-or.html - 掌握了所有這些信息,我確信沒有回購pom是要走的路! – Jepper

+0

maven傢伙也有類似的博客文章:http://blog.sonatype.com/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/(地獄它是2009年) – wemu