2017-07-12 89 views
0

我升級從庫版本:Maven的負荷錯誤的依賴:傑克遜Codehaus的 - > fasterxml

<dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.13</version> 
    </dependency> 

<dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.8.9</version> 
    </dependency> 

當運行構建或只是mvn dependency:resolve,它失敗The following artifacts could not be resolved: org.codehaus.jackson:jackson-core-asl:jar:2.8.9, org.codehaus.jackson:jackson-mapper-asl:jar:2.8.9: Could not find artifact org.codehaus.jackson:jackson-core-asl:jar:2.8.9 in central ...上部署服務器。它在我的開發機器上運行時以某種方式工作。兩臺機器(仍然)使用Java7。

不知何故,它試圖加載舊的工件與新的ID。但在pom.xml中沒有org.codehaus的殘餘。

運行mvn dependency:treethis answer建議產生相同的結果。如果在我的開發機器上執行,我可以找到沒有其他傑克遜庫(也沒有澤西lib可能取決於舊傑克遜)

我試圖刪除目錄.m2/,但它只是自動重新填充它。

可能與question

任何想法嗎?

+1

嘗試'行家乾淨install' – frozen

+0

@ randnum-1:同樣的問題 – tokosh

回答

1

答案的性質(再次)相當愚蠢,並且在上述問題中不可見。實際的依賴是:

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>${jackson.version}</version> 
</dependency> 

變量jackson.version在此pom.xml和其父定義。所以,當使用舊版本時,它的工作原理是存在一些被覆蓋的依賴庫,其中存在被覆蓋的jackson.version。但隨着名稱更改帶來的升級,這些間接依賴庫的名稱沒有新版本。在將pom重命名爲jackson.versionfasterxml.jackson.version之後,事情再次奏效。

解決方案:更仔細地看mvn -X dependency:tree

+0

爲了使上述工作構建一個一體機,但不是在另一個是因爲,在前者那裏是一個缺少依賴信息的庫。在破解機器中,這個lib _had_ dep-infos,導致構建失敗。 – tokosh

相關問題