我正在使用Artifactory Pro版本:3.6.0。我有几个远程repos(缓存)配置代理到不同的外部回购(如https://repo1.maven.org/maven2/..。) 我还配置了虚拟仓库,其中包括所有远程仓库。 (例如:http://mydomain/artifactory/remote-repos/..。)
Artifactory服务器重启后,我意识到一些maven构建开始失败,因为某些maven插件相关的pom文件(依赖项)无法从Artifactory下载/获取。
我注意到该文件无法通过虚拟仓库URL下载,但可以通过远程仓库URL下载。
例如:
(只有1-2个maven插件相关的pom文件无法下载;其余文件下载好了。)
我需要使用虚拟仓库URL,因为这是在settings.xml文件(镜像中央缓存)中配置的方式
我做了很多不同的调查:
查看Artifactory日志(信息和调试级别)
...
[DEBUG](o.s.j.d.DataSourceUtils:110) - 从DataSource获取JDBC连接
[DEBUG](oasduJdbcHelper:98) - 在521032 nanos中返回的查询:'SELECT * FROM nodes WHERE repo ='remote-repos'AND node_path ='org / apache / maven / maven-parent / 26'AND node_name ='maven-parent-26.pom''
[DEBUG](o.s.j.d.DataSourceUtils:327) - 返回与DataSource的JDBC连接
[DEBUG](o.a.r.RepoRequestContext:71) - 8b83e9a2 get admin remote-repos:org / apache / maven / maven-parent / 26 / maven-parent-26.pom将所请求的资源标识为文件
[DEBUG](oarRepoRequestContext:71) - 8b83e9a2 get admin remote-repos:org / apache / maven / maven-parent / 26 / maven-parent-26.pom请求的资源是一个普通的工件 - 使用普通的内容句柄长度'40751'
[DEBUG](o.s.b.f.s.DefaultListableBeanFactory:523) - 返回单例bean'pluginsAddonDefaultImpl'的缓存实例
[DEBUG](o.s.b.f.s.DefaultListableBeanFactory:523) - 返回单例bean的缓存实例'org.artifactory.addon.plugin.PluginsAddonImpl#0'
[DEBUG](oarRepoRequestContext:71) - 8b83e9a2 get admin remote-repos:org / apache / maven / maven-parent / 26 / maven-parent-26.pom执行任何可能存在的BeforeDownload用户插件
[DEBUG](o.a.r.RepoRequestContext:71) - 8b83e9a2 get admin remote-repos:org / apache / maven / maven-parent / 26 / maven-parent-26.pom响应所选内容句柄
[DEBUG](o.a.r.RequestResponseHelper:71) - 发送回“remote-repos:org / apache / maven / maven-parent / 26 / maven-parent-26.pom”的正文回复。原始资源大小:40751,实际大小:40751。
[WARN](o.a.r.ArtifactoryResponseBase:57) - 发送到客户端的零字节,但预计为40751字节。
[DEBUG](o.a.r.RepoRequestContext:71) - 8b83e9a2 get admin remote-repos:org / apache / maven / maven-parent / 26 / maven-parent-26.pom请求成功
...
检查Artifactory上是否存在文件:存在且可以使用远程repo URL(非虚拟仓库URL)下载;见上文。
任何人都知道为什么有些文件(例如maven-parent-26.pom)无法使用虚拟仓库URL从Artifactory下载?
感谢。
答案 0 :(得分:0)
这确实很奇怪。 当您在虚拟存储库中配置include / exclude patterns时,我唯一能想到的就是导致文件无法在虚拟中访问。 也许你可以先打破它并尝试直接使用curl从远程仓库解决pom文件,如下所示:
curl -uadmin:password http://localhost:8081/artifactory/my-remote/path/to/pom
和虚拟回购一次,如此:
curl -uadmin:password http://localhost:8081/artifactory/my-virtual/path/to/pom
首先确保只在虚拟存储库中包含这个远程存储库。