2009-09-17 34 views
6

編輯:好的...所以我收集了SVN不應該用於這...這是有道理的,我想(爲什麼當版本應該是一個單獨的jar時版本個別文件?)。在SVN中通過NetBeans 6.7創建/訪問Maven存儲庫*修正*

因此,我們應該使用內部服務器來託管像Nexus(等)這樣的存儲庫管理工具,並通過http訪問它來下拉並取消依賴關係。我們現在將我們的項目保留在SVN中。部署標準是什麼? Maven中存在依賴關係。項目進入SVN。我們是否應該忽略dist和build文件夾?我們的WAR文件將從哪裏部署?

老問題(爲後人)

我的品牌新的Maven不知道插孔了。我正在評估它,看看它如何處理我們的Java開發。

我想在我們的SVN服務器上有一個Maven存儲庫,以便可以使用NetBeans 6.7從那裏取消依賴關係。我一直無法找到如何做到這一點在整個谷歌和stackoverflow搜索。

這裏有什麼最佳實踐?我在想,我們希望使用svn + ssh下載依賴關係,但大部分在線內容似乎都指向使用http。

用偉大的事情填滿我的大腦!


回答

5

我強烈建議不要這樣做。 Maven工件不屬於SCM服務器。您應該考慮使用像Nexus這樣的存儲庫管理器來存儲您的工件。看到這裏的主要repository managers比較。

話雖如此。如果您決定使用Subversion託管您的工件。看到這個question關於使用旅行車scm部署到Subversion存儲庫。

如果您想了解有關Maven的更多信息,請查看Maven: the definitive guide

Netbeans有一個Maven插件可以管理依賴關係。 This article列出了Maven和Netbeans的一些最佳實踐。


根據您更新的問題更新。如何處理您自己的罐子:

Maven有一個deploy phase,它會將您的工件發佈到遠程存儲庫。您需要配置pom的distributionManagement部分,並在settings.xml中提供appropriate credentials以允許進行部署。通常,您可以在服務器上爲您自己的工件設置一個離散的邏​​輯存儲庫,以使它們與第三方工件保持隔離。 Nexus book爲在Nexus上配置存儲庫提供了一些很好的指導。特別參見Adopting a Repository Manager部分。

如果您已正確配置您的項目,請運行mvn deploy,直至部署階段(包括部署階段)的所有階段都會運行,並且您的工件將發佈到存儲庫,供團隊/公司的其他人員使用。

如果您需要限制對存儲庫的訪問,則可以將訪問控制配置到您的存儲庫,以便只有經過身份驗證的用戶才能訪問這些工件(對於Nexus,請參閱本書的Managing Security部分以獲取指導)。

值得注意的是,您可以使用Artifactory或Archiva做與Nexus大致相同的事情,我已經包含了Nexus引用,因爲我更喜歡它,並且文檔非常好。

1

不要將它們存儲在SVN中。

我會做兩件事情,以確保你沒有得到太多的麻煩:

  1. 鏡像存儲庫更接近你的盒子地方,你和你的同事可以共享。這將消除額外的下載,並允許您解決鏡像的pom/jar文件可能出現的任何問題(他們將會),因此您的隊友不必分擔頭痛。有幾個回購經理在那裏提供幫助。
  2. 盡你最大努力使用您的機器存儲庫,並推送對您可能對本地共享庫執行的任何pom文件的更改/修改。