由于 "maven-metadata-bintray-central.xml" 文件中的错误,Maven 构建失败

Maven build fails due to error in "maven-metadata-bintray-central.xml" file

我使用 Maven 构建了一个项目,该项目引用了 Artifactory 中的工件。此构建设置工作正常,但现在每次从 Artifactory 存储库获取新库时我都会看到此错误。

Caused by: org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException: Unable to read local copy of metadata: Cannot read metadata from '/home/user/.m2/repository/com/cc-spring-hibernate/5.1-SNAPSHOT/maven-metadata-bintray-central.xml': end tag name </body> must match start tag name <hr> from line 5 (position: TEXT seen ...</center>\r\n</body>... @6:8)
    at org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.resolve(DefaultRepositoryMetadataManager.java:175)
    at org.apache.maven.artifact.transform.AbstractVersionTransformation.resolveVersion(AbstractVersionTransformation.java:65)
    at org.apache.maven.artifact.transform.SnapshotTransformation.transformForResolve(SnapshotTransformation.java:63)
    ... 23 more

当我查看 maven-metadata-bintray-central.xml 文件时,我看到它有这个内容。

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

经过调查,我发现这似乎是因为 Artifactory 调用 http://jcenter.bintray.com/ to get a dependency, but the HTTP call returns the "302 Found" & nginx message to redirect to HTTPS (https://jcenter.bintray.com/)。

Artifactory 是否调用 jcenter.bintray 来获取库的详细信息?如果是这样,我们如何配置 Artifactory 以使用 https URL 或理解 http 重定向?

此问题与 Artifactory 无关

是因为pom文件中有对http://jcenter.bintray.com的引用。

<repository>
   <id>bintray-central</id>
   <name>bintray</name>
   <url>https://jcenter.bintray.com</url>
</repository>

我不确定为什么它没有早点失败。我假设 jcenter.bintray.com 网站最近发生了变化,将所有对 http 的调用重定向到带有 302 的 https。 将 bintray URL 更改为 https,像这样,删除 .m2 文件夹中的旧文件并重建解决了问题。

<!-- Updated http url -->
<repository>
   <id>bintray-central</id>
   <name>bintray</name>
   <url>https://jcenter.bintray.com</url>
</repository>