我使用 Nexus UI 配置了远程“快照”存储库的代理实例。我可以在 UI 中浏览远程存储库并查看工件。我尝试查询远程 Nexus 实例,它提供工件而没有任何问题。但是,当我尝试在代理实例上执行类似的查询时,它给我一个资源“未找到”错误。我尝试在 URL 末尾使用“?describe”指令来准确查看请求的处理方式。但这并没有提供太多信息。
即使远程实例确实有工件,代理实例也是空的,并且我显式查询代理实例以获取远程中存在的工件,因此从技术上讲,它应该已获取这些工件并提供服务,但它没有按照计划工作。我还尝试执行“过期缓存”并将设置“未找到缓存 TTL”更改为 0,但未能使其工作。
在我的代理上,我创建了一个新的“快照代理”存储库,用于代理远程“快照”存储库。 摘自 nexus.xml:
<repository>
<id>snapshots-proxy</id>
<name>Snapshots-proxy</name>
<providerRole>org.sonatype.nexus.proxy.repository.Repository</providerRole>
<providerHint>maven2</providerHint>
<localStatus>IN_SERVICE</localStatus>
<notFoundCacheActive>true</notFoundCacheActive>
<userManaged>true</userManaged>
<exposed>true</exposed>
<browseable>true</browseable>
<writePolicy>READ_ONLY</writePolicy>
<indexable>true</indexable>
<searchable>true</searchable>
<localStorage>
<provider>file</provider>
</localStorage>
<remoteStorage>
<provider>apacheHttpClient3x</provider>
<url>http://xxx.pod.dev.net:nnnn/nexus/content/repositories/snapshots/</url>
<mirrors>
<mirror>
<id>http://xxx.pod.dev.net:nnnn/nexus/content/repositories/snapshots</id>
<url>http://xxx.pod.dev.net:nnnn/nexus/content/repositories/snapshots</url>
</mirror>
</mirrors>
</remoteStorage>
<externalConfiguration>
<repositoryPolicy>RELEASE</repositoryPolicy>
<checksumPolicy>WARN</checksumPolicy>
<fileTypeValidation>false</fileTypeValidation>
<downloadRemoteIndex>true</downloadRemoteIndex>
<artifactMaxAge>-1</artifactMaxAge>
<metadataMaxAge>1440</metadataMaxAge>
<autoBlockActive>true</autoBlockActive>
</externalConfiguration>
</repository>
如果有人能指导我去哪里寻找,我将不胜感激。
sonatype 社区的一位成员帮助我解决了这个问题。错误在行:
<repositoryPolicy>RELEASE</repositoryPolicy>
我将其更改为 SNAPSHOT,现在可以使用了!
naugustine的回复也为我们省了不少力气。代理存储库策略设置为 RELEASE,将其更改为 SNAPSHOT 解决了该问题。