Sonatype Nexus、maven.oracle.com和不存在的构件

3
我们正在使用Sonatype Nexus代理Maven仓库http://maven.oracle.com。最近,它无法解析一些已经存在很长时间且仍然存在的构件。 在日志中,我可以找到这些消息:
2016-11-01 13:56:55,914+0100 INFO  [qtp1990129127-84] ciserver org.sonatype.nexus.proxy.repository.validator.DefaultFileTypeValidatorHub - File item Oracle:/org/apache/ws/jaxme/maven-jaxme-plugin/maven-metadata.xml evaluated as INVALID during file type validation (validator=maven)
2016-11-01 13:56:55,916+0100 INFO  [qtp1990129127-84] ciserver org.sonatype.nexus.proxy.maven.maven2.M2Repository - Proxied item Oracle:/org/apache/ws/jaxme/maven-jaxme-plugin/maven-metadata.xml evaluated as INVALID during content validation (validator=filetypevalidator, sourceUrl=https://maven.oracle.com/org/apache/ws/jaxme/maven-jaxme-plugin/maven-metadata.xml)
2016-11-01 13:57:40,761+0100 INFO  [qtp1990129127-88] ciserver org.sonatype.nexus.proxy.repository.validator.DefaultFileTypeValidatorHub - File item Oracle:/com/oracle/weblogic/weblogic-server-pom/maven-metadata.xml evaluated as INVALID during file type validation (validator=maven)
2016-11-01 13:57:40,762+0100 INFO  [qtp1990129127-88] ciserver org.sonatype.nexus.proxy.maven.maven2.M2Repository - Proxied item Oracle:/com/oracle/weblogic/weblogic-server-pom/maven-metadata.xml evaluated as INVALID during content validation (validator=filetypevalidator, sourceUrl=https://maven.oracle.com/com/oracle/weblogic/weblogic-server-pom/maven-metadata.xml)

虽然maven-jaxme-plugin在maven.oracle.com上不存在,但是它仍然在代理存储库中有一些(损坏的)元数据。删除这些数据可以帮助,直到再次请求该工件为止。另一方面,artifact weblogic-server-pom存在于maven.oracle.com上,但是只要日志中出现这些消息,就不再由代理提供服务。清除缓存可以帮助解决问题,但仅限于再次请求maven-jaxme-plugin之前。
我已经创建了一个nexus.properties文件,包含像这里描述的设置。但对我来说没有改变任何东西。
当使用WebBrowser访问日志中的第一个URL并登录时,我会得到404错误。这似乎很好。但可能重定向(301)存在问题,直到那时?
如何避免让不存在的工件破坏代理存储库的元数据?

最近,Sonatype Nexus似乎完全无法使用maven.oracle.com。它甚至自动屏蔽了它。还有人能够使用它吗? - Christian
1个回答

1
我无法复制使用Nexus Repository Manager OSS 2.14.1-01代理到maven.oracle.com的问题。这似乎在解析和下载下面的两个测试构件方面运行良好。
就你看到的日志消息而言,建议在Nexus上执行以下操作:
1)禁用Nexus实例中Oracle Maven代理存储库上的“文件内容验证”;
2)右键单击Oracle存储库并选择“过期缓存”,以便从Oracle重新下载构件;
3)在客户端上,使用“mvn -U”强制Maven检查依赖项是否存在于Nexus中。
测试构件:
<!-- Found in maven.oracle.com. -->
<dependency>
    <groupId>com.oracle.weblogic</groupId>
    <artifactId>wls-api</artifactId>
    <version>12.1.3-0-0</version>
</dependency>

<!-- Found in Maven Central. -->
<dependency>
    <groupId>org.apache.ws.jaxme</groupId>
    <artifactId>maven-jaxme-plugin</artifactId>
    <version>1.0.3</version>
</dependency>

参考资料:

Nexus文档: https://books.sonatype.com/nexus-book/reference/confignx-sect-manage-repo.html


谢谢你的回答,ck1。不幸的是我们已经尝试了你描述的步骤,但没有帮助。但有趣的是你自己没有这个问题。也许它与我们公司的 Web 代理有关。 - Christian
即使答案不是解决方案,我也会授予悬赏以尝试复现它。 - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接