Maven校验和失败

时间:2009-11-19 19:34:47

标签: maven-2 archiva

我正在开发一个使用Maven作为构建工具的项目。我正在使用该工具的2.2.1版本。最近一位同事提到由于校验和错误,他无法建立项目。我没有收到这些错误所以我删除了我的本地存储库。果然,我在下一次构建尝试时也遇到了校验和错误。我们使用Archiva作为我们的中央存储库,所以我再次上传了jar,希望能够解决这个问题。没运气。可能导致这些错误的原因是什么?如何解决?

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)

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

神器解析器(仍然,甚至在3.0.4中显然)不是线程安全的:

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

尝试建立:

-Dmaven.artifact.threads = 1

当我在3.0.4中使用此选项在显示校验和错误的项目中构建(对于log4j)时,所有校验和错误都会消失。

它也应该适用于2.2.1。

(编辑:在'隐藏假阴性'下提交此答案)

答案 2 :(得分:3)

您是否尝试将proxy connector中的 Checksum 政策更改为“修复”而不是“忽略”?< / p>

答案 3 :(得分:1)

我从Archiva手动删除了工件,并使用Archiva再次上传它们。这解决了我的问题。在Archiva中,似乎存在重复的POM,JAR等等,因为出现校验和错误的版本。

答案 4 :(得分:0)

虽然如上所述使用单个线程,但是下面的Rondo允许构建完成而没有错误,最后我发现我的工作空间已损坏。可能是因为构建中断。我擦掉了工作空间并从源代码管理器创建了一个干净的工作空间,一切都运行良好。