2012-02-17 36 views
0

我在嘗試使用Maven構建項目時遇到問題。我的網絡上有一個nexus服務器,我的所有依賴都來自那裏。它有一箇中央資源庫,它是外部依賴關係的官方maven2存儲庫的代理,以及一個存儲這裏所有內部庫的存儲庫。具有多個鏡像的Maven項目上的依賴項下載出錯

好吧,讓我們跳到這個問題。我有我的.m2目錄下的文件夾下面的配置:

<settings> 
    <mirrors> 
     <mirror> 
      <id>treto</id> 
      <name>Tre-to Libs</name> 
      <url>http://10.163.40.41:8081/nexus/content/repositories/treto-libs/</url> 
      <mirrorOf>treto-libs,br.jus.treto</mirrorOf> 
     </mirror> 
     <mirror> 
      <id>central</id> 
      <name>Maven Repository Manager</name> 
      <url>http://10.163.40.41:8081/nexus/content/repositories/central/</url> 
      <mirrorOf>central,!treto-libs,!br.jus.treto</mirrorOf> 
     </mirror> 
    </mirrors> 
    ... 
</settings> 

而且在我的項目的POM,我有以下的依賴,從我的聯繫界面複製該代碼:

<dependencies> 
    <dependency> 
     <groupId>br.jus.treto</groupId> 
     <artifactId>tre-auth</artifactId> 
     <version>0.120</version> 
    </dependency> 
</dependencies> 

這種關係應該從「treto」鏡像下載,但Maven總是試圖從中央鏡像中獲取鏡像,而鏡像沒有這種依賴關係。

問題是,我在配置上丟失了什麼?

回答

1

你應該有,在你的pom.xml或settings.xml中(在配置文件中),這種聲明:

<repositories> 
    <repository> 
    <id>central</id> 
    <url>http://repo1.maven.org/maven2/</url> 
>/repository> 
    <repository> 
     <id>treto</id> 
     <name>Tre-to Libs</name> 
     <url>http://10.163.40.41:8081/nexus/content/repositories/treto-libs/</url> 
    </repository> 
</repositories> 

然後,你的鏡子應該是:

<mirrors> 
    <mirror> 
     <id>central</id> 
     <name>Maven Repository Manager</name> 
     <url>http://10.163.40.41:8081/nexus/content/repositories/central/</url> 
     <mirrorOf>central</mirrorOf> 
    </mirror> 
</mirrors> 

你可以告訴Maven來使用你的鏡子,每薄除了treto:

 <mirrorOf>*,!treto</mirrorOf> 

或僅使用它的中央

 <mirrorOf>central</mirrorOf> 

發表您的全POM,如果這不工作設置;)

+0

它像魔術一樣工作!謝謝您的幫助 :) – 2012-02-23 18:03:32

0

是否在您的項目或設置中聲明帶有ID(treto-libs,br.jus.treto)的存儲庫? 因爲你說mirrorOf必須聲明這些id。

+0

是的,他們都是。 – 2012-02-17 21:26:44

+0

它們在我的項目pom上被宣佈 – 2012-02-17 21:27:06

相關問題