2009-11-19 14 views
13

Sto lavorando a un progetto che utilizza Maven come strumento di creazione. Sto usando la versione 2.2.1 dello strumento. Recentemente un collaboratore ha affermato di non poter costruire il progetto a causa di errori di checksum. Non stavo ricevendo questi errori quindi ho cancellato il mio repository locale. Abbastanza sicuro, ho anche avuto gli errori di checksum sul prossimo tentativo di costruire. Usiamo Archiva come nostro repository centrale, quindi ho caricato di nuovo i barattoli sperando di risolvere il problema. Senza fortuna. Che cosa potrebbe causare questi errori e come risolverli?Maven checksum failed

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) 

risposta

1

ho cancellato manualmente i manufatti Archiva e utilizzati Archiva per caricarle di nuovo. Questo ha risolto il mio problema. Sembravano duplicare POM, JAR, ecc. In Archiva per le versioni che davano gli errori di checksum.

+1

Risolve il problema, ma per quanto tempo? Hai trovato che è tornato o hai apportato ulteriori modifiche al pom o alle impostazioni? –

3

Hai provato a cambiare le Checksum politiche nel proxy connector a 'fix' invece di 'ignorare'?

6

Il problema sembra essere il modo in cui il client Maven sta distribuendo le risorse nel repository centrale (Archiva). Sta usando HTTP e in alcune situazioni corromperà la firma di checksum del file.

provare a modificare il file delle impostazioni Maven locali a guardare qualcosa di simile, che per me era situato in ~/.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> 

Dopo aver apportato questo cambiamento, ridistribuire i manufatti per il tuo repo centrale, poi tenta di eseguire mvn dependency:resolve nel tuo progetto locale per vedere se gli errori di checksum continuano ancora.

Ecco un thread su questo problema: http://jira.codehaus.org/browse/MNG-4301

4

Il resolver manufatto è (ancora, anche nella versione 3.0.4 apparentemente) non thread safe:

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

provare edificio con:

-Dmaven.artifact.threads = 1

Quando costruisco con questa opzione in 3.0.4 in un progetto che mostra errori di checksum (per log4j), tutti gli errori di checksum scompaiono.

Si dovrebbe applicare anche a 2.2.1.

(edit: file di questa risposta in 'nascondere falsi negativi')

0

Durante l'utilizzo di un singolo thread come descritto bu Rondo seguito ha permesso la costruzione completa senza errori, alla fine ho scoperto che il mio spazio di lavoro è stato danneggiato. Forse a causa di una costruzione interrotta. Ho cancellato lo spazio di lavoro e ne ho creato uno pulito dal gestore del codice sorgente e tutto ha funzionato di nuovo bene.