我们正在使用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.oracle.com上不存在maven-jaxme-plugin,但它仍然在代理存储库中有一些(损坏的)元数据。删除这些有助于再次请求工件。 另一方面,工件weblogic-server-pom onm存在于maven.oracle.com上,但只要这些消息出现在日志中,代理就不再提供服务。它有助于清除缓存 - 但只有在再次请求maven-jaxme-plugin之前。
我创建了一个nexus.properties文件,其中包含如here所述的设置。但它对我没有任何改变。
当使用WebBrowser访问日志中的第一个URL时,如果我已登录,则会收到404.这似乎很好。但是在那之前重定向(301)可能存在问题?
如何避免让不存在的工件破坏代理存储库的元数据?
答案 0 :(得分:1)
我无法使用Nexus Repository Manager OSS 2.14.1-01复制您在代理maven.oracle.com时遇到的问题。对于解决和下载下面的两个测试工件,这似乎工作得很好。
就您所看到的日志消息而言,我建议您在Nexus上执行以下操作:
1)在Nexus实例中的Oracle Maven代理存储库上禁用File Content Validation
;
2)右键单击Oracle存储库并选择Expire Cache
,以便从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