2012-10-17 17 views
4

我有一個迄今用於編譯沒有問題的Maven項目。今天,當我運行mvn clean package -U,我得到:Maven試圖下載'-sources.src'文物?

[錯誤]未能就項目的Myproj執行目標:無法解析項目org.myorg.myproj依賴關係:的Myproj:罐子:1.0快照:下面的文物無法解析:javax.servlet:javax.servlet-api:src:sources:3.0.1,org.eclipse.jetty:jetty-servlet:src:sources:8.1.2.v20120308,org.eclipse.jetty:jetty -server:src:sources:8.1.2.v20120308,org.eclipse.jetty:jetty-webapp:src:sources:8.1.2.v20120308,commons-io:commons-io:src:sources:2.4:找不到artifact javax.servlet:javax.servlet-api:src:sources:3.0.1 in MyRepo(http://maven.myorg.org:9001/nexus/content/repositories/myrepo/) - > [Help 1]

我試圖用一個新的本地Maven倉庫(rm -fr ~/.m2/repository),但沒有任何區別。

爲什麼Maven試圖找到source/src工件?任何問題可能存在的想法?

編輯:我的依賴關係(如使用mvn help:effective-pom所示)沒有任何source分類器。例如,在錯誤消息中提到的jetty-server的依賴內容如下:

<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-server</artifactId> 
    <version>8.1.2.v20120308</version> 
    <scope>compile</scope> 
</dependency> 

解決方案:隨着@AlessandroSantini的幫助和@布萊恩 - 摘心,我終於發現了問題。我的一個間接依賴項有<classifier>sources</classifier><type>src</type>。 (mvn help:effective-pom沒有顯示這些間接依賴,並mvn dependency:tree失敗,出現上述錯誤信息,也;最終,一個grep -r 'jetty-server' ~/.m2/repository/ -C 3確定與搞砸依賴神器)

原來我自己SBT項目之一所需要的(不存在的)源工件:我使用SBT's withSources(),我應該使用sbteclipe's EclipseKeys.withSource := true來獲取Eclipse中的源代碼。

+1

也許你可能包含你的pom.xml? –

+0

顯然它看起來像你的依賴項中有一個「src」類型和一個「sources」限定符。 –

+0

@AlessandroSantini,不確定:當我查看完整的依賴關係時,使用'mvn help:effective-pom',我沒有看到任何與源限定符的依賴關係(請參閱我的編輯)。 – Hbf

回答

2

你對公共快照有任何依賴嗎?我會看看mvn dependency:tree的輸出,看看你是否能找到包含源的傳遞依賴。也許其中一個傳遞體已經改變,因爲你最後的構建和他們搞砸了。

+0

這聽起來像是一個非常有前途的曲目,謝謝Brian!現在,我正在苦於'mvn dependency:tree',它本身會失敗,並且在帖子中出現相同的錯誤信息。 – Hbf

+0

謝謝,布萊恩,你的提示讓我走上了正確的軌道(詳見OP中的編輯)。 – Hbf