2010-05-29 73 views
5

我爲我的個人項目廣泛使用了Maven,但現在我必須爲5-7個開發者組建一個小團隊。爲團隊設置Maven

我的主要問題是,什麼是管理商業圖書館的依賴項的建議方法,在Maven回購協議中不可用?我如何管理這些商業庫對他們使用的開源庫的依賴性,並且可以在Maven repos中獲得?

另外,是否還有其他建議和建議,我應該瞭解或實施以使設置儘可能高效,有效且流暢?

在此先感謝。

+0

我上建立一個Maven回購之前的答案可能是也有幫助http://stackoverflow.com/questions/1039362/tips-for-maintaining-an-internal-maven-repository/1650403#1650403 – sal 2010-06-01 19:26:11

+0

添加標籤maven-2作爲maven暗示maven 1 – 2010-06-02 08:41:25

回答

5

您可能想要使用Nexus或Artifactory設置您自己的內部Maven存儲庫。將其配置爲您自己的構件的存儲庫,並將其配置爲Central的高速緩存代理以及您需要從中提取內容的任何其他外部存儲庫。

然後爲每個商業庫創建僅二進制POM文件,包括依賴於他們所依賴的已發佈庫。以所需的結構將POM文件和相應的JAR文件上傳到您的內部存儲庫。只要確保這些POM和JAR在您的組織/組織之外不可見......取決於各個商業產品的許可證允許/要求的內容。

當然,這意味着您將無法通過Maven公開提供您的應用程序(取決於這些庫)。但是你可能已經將這個考慮在了你的計劃中。

+0

你**可以**讓你的應用程序公共的,但你的消費者需要像你一樣將私有POM + JAR添加到他們自己的存儲庫(或代理)中。 – 2010-05-29 04:58:27

+0

@Chris - 同意了,但是這是一個** LOT **來問你的軟件的消費者! – 2010-05-29 05:08:42

+0

謝謝。任何其他建議和建議? – Behrang 2010-05-29 06:35:25

4

我強烈建議使用超parent pom一些常見的設置,如

   <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <inherited>true</inherited> 
       <configuration> 
        <source>1.6</source><!-- java version --> 
        <target>1.6</target> 
        <encoding>UTF-8</encoding><!-- your source encodings --> 
        <debug>true</debug><!-- false for production --> 
        <optimize>false</optimize><!-- true for production --> 
        <showDeprecation>true</showDeprecation> 
       </configuration> 
      </plugin> 

其實有很多的那些「普通」的設置(報告插件),一個父POM保證所有使用相同的和變化到達全部

還有什麼 - 除了自己的maven回購(嘗試nexus) - ?

  • 檢查使用的IDE,Eclipse的,Netbeans的和IntelliJ均有不同程度的Maven支持和可悲的,但真正不同的行爲,如果你可以讓你的團隊使用一個 IDE
  • 想想就像一個構建服務器hudson