2009-11-19 65 views
13

我正在使用Maven作爲構建工具的項目。我正在使用該工具的2.2.1版本。最近一位同事提到他由於校驗錯誤而無法構建項目。我沒有收到這些錯誤,所以我刪除了我的本地存儲庫。果然,我也在下次嘗試構建時遇到校驗和錯誤。我們使用Archiva作爲我們的中央存儲庫,所以我再次上傳了罐子,希望能夠解決問題。沒有運氣。什麼可能導致這些錯誤,我該如何解決它們?Maven校驗和失敗

Downloading: http://artifactory/archiva/repository/maven-repo/org/springframework/ws/spring- 
ws/1.5.8/spring-ws-1.5.8.pom 
427b downloaded (spring-ws-1.5.8.pom) 
[WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '14d6901e3f251f5d312b9be726c75a 
68f78045ac'; remote = '659bbed2c2dae12e9dbb65f8cad8fce1a1ea0845' - RETRYING 
Downloading: http://artifactory/archiva/repository/maven-repo/org/springframework/ws/spring- 
ws/1.5.8/spring-ws-1.5.8.pom 
427b downloaded (spring-ws-1.5.8.pom) 
[WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '14d6901e3f251f5d312b9be726c75a 
68f78045ac'; remote = '659bbed2c2dae12e9dbb65f8cad8fce1a1ea0845' - IGNORING 
Downloading: http://artifactory/archiva/repository/maven-repo/com/xyz/abc/3.0.20090929_ 
attachment_fixes/abc-3.0.20090929_attachment_fixes.pom 
435b downloaded (abc-3.0.20090929_attachment_fixes.pom) 

回答

1

我手動刪除從Archiva文物和使用Archiva再次上傳。這解決了我的問題。在Archiva中,出現校驗和錯誤的版本似乎存在重複的POM,JAR等。

+1

它解決了這個問題,但是要多長時間?你是否發現它已經返回,或者你是否對pom或設置進行了其他更改? –

3

你嘗試在proxy connector校驗政策更改爲「修復」而不是「忽略」?

6

問題出現在maven客戶端如何將工件部署到中央存儲庫(Archiva)中。它使用HTTP,在某些情況下會破壞文件的校驗和簽名。

試着改變你的本地Maven設置文件是這個樣子,這對我來說是位於~/.m2/settings.xml

<settings> 
    <servers> 
    <server> 
     <id>my-server</id> 
     <configuration> 
     <httpConfiguration> 
      <put> 
      <params> 
       <param> 
       <name>http.authentication.preemptive</name> 
       <value>%b,true</value> 
       </param> 
      </params> 
      </put> 
     </httpConfiguration> 
     </configuration> 
    </server> 
    </servers> 
</settings> 

您做出更改後,重新部署文物的中央回購,然後嘗試運行mvn dependency:resolve在您的本地項目中查看校驗和錯誤是否仍然存在。

這裏有一個關於這個問題的線索:http://jira.codehaus.org/browse/MNG-4301

4

的神器解析器(不過,即使在3.0.4顯然)不是線程安全的:

http://jira.codehaus.org/browse/MNG-4742

嘗試與建設:

-Dmaven.artifact.threads = 1

當我在顯示校驗和錯誤的項目(對於log4j)中使用3.0.4中的此選項構建時,所有校驗和錯誤消失。

它也應該適用於2.2.1。

(編輯:文件下的「隱藏漏報」這個答案)當使用一個單獨的線程所描述的BU低於朗多允許建立完整,沒有錯誤,在我發現我的工作空間已損壞結束

0

。可能是由於構建中斷。我刪除了工作空間,並從源代碼管理器創建了一個乾淨的工作空間,並且所有工作都再次正常工作。