2017-05-23 77 views
1

我們有解決不了的依賴Maven項目:的Maven不能reslove依賴

[錯誤]未能就項目利馬經紀騾子執行目標:無法 項目 經紀人解決依賴關係:利馬 - 經紀人騾子:mule:2.0:以下 工件無法解析: com.sun.xml.messaging.saaj:saaj-impl:jar:1.3-osgi, mx4j:mx4j-jmx:jar:2.1。 1-osgi,mx4j:mx4j-impl:jar:2.1.1-osgi, mx4j:mx4j-tools:jar:2.1.1-osgi,mx4j:mx4j-remote:jar:2.1.1-osgi, com。 yourkit:yjp-controller-api-redist:jar:9.0.8, org.springmodules:spring-modules-cache:jar:0.9, org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1-osgi, commons-codec:commons-codec:jar:1.3-osgi , commons-httpclient:commons-httpclient:jar:3.1-osgi, dom4j:dom4j:jar:1.6.1-osgi, commons-jxpath:commons-jxpath:jar:1.3-osgi, com.thoughtworks.xstream :xstream:jar:1.2.2-osgi, xpp3:xpp3_min:jar:1.1.3.4.O-osgi,jaxen:jaxen:jar:1.1.1-osgi, net.java.dev.stax-utils:stax -utils:jar:20080702-osgi, net.sf.saxon:saxon-dom:jar:8.9.0.4-osgi, net.sf.saxon:saxon-xqj:jar:8.9.0.4, net.sf. saxon:saxon:jar:8.9.0.4-osgi, javax.activation:activation:jar:1.1-osgi, org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:1.1-osgi: 無法找到工件 com.sun.xml.messaging.saaj:saaj-impl:jar:1.3-osgi全部.repos (http://our.local/artifactory/all

的問題是,我們不直接在我們的pom.xml引用這些依賴關係:

<dependencies> 

    <!-- Project --> 
    <dependency> 
     <groupId>de.lineg.lima.broker</groupId> 
     <artifactId>lima-broker-service</artifactId> 
     <version>${project.version}</version> 
     <scope>compile</scope> 
    </dependency> 

    <dependency> 
     <groupId>net.sourceforge.jtds</groupId> 
     <artifactId>jtds</artifactId> 
     <version>1.2.4</version> 
     <scope>compile</scope> 
    </dependency> 

    <!-- Transports used by the Mule config --> 
    <dependency> 
     <groupId>org.mule.modules</groupId> 
     <artifactId>mule-module-cxf</artifactId> 
     <version>3.2.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mule.transports</groupId> 
     <artifactId>mule-transport-email</artifactId> 
     <version>3.2.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mule.transports</groupId> 
     <artifactId>mule-transport-vm</artifactId> 
     <version>3.2.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mule.transports</groupId> 
     <artifactId>mule-transport-jetty</artifactId> 
     <version>3.2.0</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>servlet-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.tomcat</groupId> 
       <artifactId>jsp-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.tomcat</groupId> 
       <artifactId>jasper</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.tomcat</groupId> 
       <artifactId>jasper-el</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <!-- Unit tests --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mule.tests</groupId> 
     <artifactId>mule-tests-functional</artifactId> 
     <version>3.2.0</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mule.modules</groupId> 
     <artifactId>mule-module-client</artifactId> 
     <version>3.2.0</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>3.0.5.RELEASE</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <artifactId>ojdbc6</artifactId> 
     <groupId>com.oracle</groupId> 
     <scope>test</scope> 
     <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.easytesting</groupId> 
     <artifactId>fest-assert</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <version>1.0.20061217</version> 
     <scope>test</scope> 
     <optional>true</optional> 
    </dependency> 
</dependencies> 

我真的不知道如何解決這個問題。依賴關係不在我們在artifactory中的倉庫中,我無法在任何存儲庫中找到它們中的一些。我不知道如何找出這些依賴關係是如何引用的,並且maven的依賴插件不能真正幫助我,因爲在任何依賴插件輸出出現之前構建失敗。

任何想法我可以如何解決這個問題?有什麼辦法可以追蹤這個問題的根源嗎?

回答

2

找不到神器 com.sun.xml.messaging.saaj:SAAJ-IMPL:罐子:1.3的OSGi在all.repos (http://our.local/artifactory/all

com.sun.xml.messaging.saaj:saaj-impl:jar:1.3-osgi神器是一個陽光圖書館,有些則不是公共遠程倉庫可用(法律ity關注),此外它是一個osgi版本(這也不常見)。
因此,您從公共Maven存儲庫中找不到它並不奇怪。

com.sun.xml.messaging.saaj:saaj-impl:jar:1.3-osgi依賴關係在您的pom中不可見,因爲它可能是一個傳遞性依賴項,也就是您所包含的依賴項所引發的依賴項。
由於您沒有顯示構建的整個錯誤消息,因此我們無法確切說明哪個依賴關係會將其拉出。

爲了解決您的問題,您可以確定哪個依賴項拉扯了這個缺失的依賴關係,然後查看並添加(如果不存在)問題跟蹤包含此缺失依賴項的依賴關係的問題。也許,有一個解決方法,比如添加一個可以提供依賴關係的Maven倉庫。

無論如何,您可能會嘗試在可靠來源網站上找到該庫,然後將其下載並使用部署maven插件的deploy:deploy-file目標安裝到您的工件中。

看看這個,例如: https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html

+0

是的,我也想過這個解決方案。我也同意osgi版本是非常罕見的。這使得它更加有趣地瞭解它們來自哪裏,任何想法如何做到這一點? –

+0

這可能是一種傳遞依賴。我編輯解釋 – davidxxx

+0

我想出了包括-X顯示的來源。我可以從這裏解決它。謝謝 –

0

大部分的文物上可以找到mvnrepository.com

<https://mvnrepository.com/artifact/com.sun.xml.messaging.saaj/saaj-impl> 
<https://mvnrepository.com/artifact/mx4j/mx4j-tools/2.1.1> 
<https://mvnrepository.com/artifact/com.sun.xml.messaging.saaj/saaj-impl/1.3.2> 
<https://mvnrepository.com/artifact/commons-jxpath/commons-jxpath/1.3> 
+0

但並不需要的特定版本。例如:https://mvnrepository.com/artifact/com.sun.xml.messaging.saaj/saaj-impl/1.3-osgi(取自錯誤消息「Could not find artifact com.sun.xml.messaging.saaj: saaj-impl:jar:1.3-osgi「) –

+0

然後我會明確地增加(更改)版本。我們希望沒有什麼紅衣主教有所改變。 – Ursache

+0

我很樂意這樣做。但是我們不直接使用這些依賴關係,就像您在pom.xml中看到的一樣。我不知道這些依賴來自哪裏。 –