Ответ 1
Я вручную удалил артефакты из Archiva и использовал Archiva, чтобы загрузить их снова. Это решило мою проблему. В Archiva появились дубликаты POM, JAR и т.д. Для версий, которые выдавали ошибки контрольной суммы.
Я работаю над проектом, который использует Maven как инструмент построения. Я использую версию 2.2.1 инструмента. Недавно коллега упомянул, что он не мог построить проект из-за ошибок контрольной суммы. Я не получал эти ошибки, поэтому я удалил свой локальный репозиторий. Разумеется, я также получил ошибки контрольной суммы при следующей попытке построить. Мы используем Archiva как наш центральный репозиторий, поэтому я снова загрузил фляги, надеясь решить проблему. Не повезло. Что может вызвать эти ошибки и как их разрешить?
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)
Я вручную удалил артефакты из Archiva и использовал Archiva, чтобы загрузить их снова. Это решило мою проблему. В Archiva появились дубликаты POM, JAR и т.д. Для версий, которые выдавали ошибки контрольной суммы.
Проблема заключается в том, как клиент 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
Артефакт-резольвер (по-прежнему, хотя и в версии 3.0.4) не является потокобезопасным:
http://jira.codehaus.org/browse/MNG-4742
попробуйте создать с помощью:
-Dmaven.artifact.threads = 1
Когда я создаю эту опцию в версии 3.0.4 в проекте, который отображает ошибки контрольной суммы (для log4j), все ошибки контрольной суммы исчезают.
Он также должен применяться к 2.2.1.
(отредактируйте: напишите этот ответ под "скрытием ложных негативов" )
Вы пытались изменить политики контрольных сумм в прокси-коннекторе для исправления вместо "игнорировать"?
При использовании одного потока, как описано выше, bu Rondo ниже разрешил сборку без ошибок, в конце концов я обнаружил, что мое рабочее место было повреждено. Возможно, из-за прерванной сборки. Я уничтожил рабочее пространство и создал чистый файл из менеджера исходного кода, и все снова работало нормально.