由于 "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>
我使用 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>