2014-01-25 54 views
3

我有一個Apache Cocoon項目,我想將Apache FOP從1.0更新到1.1,以修復外部(非拉丁)腳本問題,例如希臘語。Maven依賴項排除:相同的工件id問題

我發現FOP 1.1有一個Maven的依賴性:

<dependency> 
    <groupId>org.apache.xmlgraphics</groupId> 
    <artifactId>fop</artifactId> 
    <version>1.1</version> 
</dependency> 

錯誤:無法執行項目X的目標:無法解析項目com.X依賴關係中:jar:1.0-快照:未找到org.apache.avalon.framework:avalon-framework-api:jar:4.2.0 http://repo.maven.apache.org/maven2被緩存在本地存儲庫中,直到中央更新間隔已過或更新被強制爲止,分辨率纔會重新嘗試 - > [Help 1]

我在這個問題上尋找解決方案,我發現這個依賴關係打破了一些其他依賴關係的鏈接,這些依賴關係是FOP 1.1需要調用的。這些與Avalon框架API 4.2相關聯。我在郵件列表中閱讀,可能試圖使用排除和調用額外的依賴關係工作正常。解決的辦法是這樣的代碼:

<dependency> 
    <groupId>org.apache.xmlgraphics</groupId> 
    <artifactId>fop</artifactId> 
    <version>1.1</version> 
    <exclusions> 
    <exclusion> 
    <artifactId>avalon-framework-api</artifactId> 
    <groupId>org.apache.avalon.framework</groupId> 
    </exclusion> 
    <exclusion> 
    <artifactId>avalon-framework-impl</artifactId> 
    <groupId>org.apache.avalon.framework</groupId> 
    </exclusion> 
    </exclusions> 
    </dependency> 
    <!-- these two are to correct issues in fop dependency --> 
    <dependency> 
    <groupId>avalon-framework</groupId> 
    <artifactId>avalon-framework-api</artifactId> 
    <version>4.2.0</version> 
    </dependency> 
    <dependency> 
    <groupId>avalon-framework</groupId> 
    <artifactId>avalon-framework-impl</artifactId> 
    <version>4.2.0</version> 
</dependency> 

現在編譯返回以下ERROR2:「無法執行目標org.apache.cocoon:繭了Maven插件:1.0.0-M2:準備(準備)在項目X上:至少有兩個工件的ID'avalon-framework-api':avalon-framework:avalon-framework-api:jar:4.2.0:compile「。

當然有。兩個依賴關係被排除在外,破壞的依賴關係和其中兩個被稱爲正確的依賴關係。我該如何解決這個問題?

+0

有沒有一種機制可以請求將FOP 1.1從Maven中央回購庫中刪除,或者缺少的工件被添加?似乎奇怪的是,事情已被允許進入這個破碎的狀態。 – user2800708

回答

7

還沒有測試過,但可能不包括org.apache.avalon.framework v4.2.0,而是包含最新的v4.3.1。如:

<dependency> 
     <groupId>org.apache.xmlgraphics</groupId> 
     <artifactId>fop</artifactId> 
     <version>1.1</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.apache.avalon.framework</groupId> 
       <artifactId>avalon-framework-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.avalon.framework</groupId> 
       <artifactId>avalon-framework-impl</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.avalon.framework</groupId> 
     <artifactId>avalon-framework-api</artifactId> 
     <version>4.3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.avalon.framework</groupId> 
     <artifactId>avalon-framework-impl</artifactId> 
     <version>4.3.1</version> 
    </dependency> 
+0

我試了這個,好像在工作 – Black

+0

非常感謝你=) –