Artifactory returns 访问虚拟存储库时出现 HTTP 302 URL

Artifactory returns HTTP 302 when accessing virtual repository URL

我在使用 Artifactory v3.9.5 解决伪影时遇到了问题。我有以下设置:

现在,当我尝试直接获取工件时,它工作正常(凭证已通过但此处省略):

wget http://myrepo/artifactory/gradle-snapshot/x/SNAPSHOT/maven-metadata.xml?trace

但是当我尝试通过虚拟存储库获取工件时,它不起作用:

wget http://myrepo/artifactory/repos/x/SNAPSHOT/maven-metadata.xml?trace

wget 输出为:

Resolving myrepo... xx.xxx.xxx.xx
Connecting to myrepo|xx.xxx.xxx.xx|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://myrepo/artifactory/repos/x/SNAPSHOT/maven-metadata.xml/ [following]
--2015-12-11 11:17:18--  http://myrepo/artifactory/repos/x/SNAPSHOT/maven-metadata.xml/
Reusing existing connection to myrepo:80.
HTTP request sent, awaiting response... 404 Not Found
2015-12-11 11:17:18 ERROR 404: Not Found.

Artifactory 刚刚返回 302,暂时移动到同一个 URL,并添加了一个像目录符号一样的斜线。知道为什么不能以这种方式访问​​虚拟存储库吗?因此,我的 Gradle 构建无法解决此依赖关系。

此问题的根本原因是远程存储库指向 http://mirrors.ibiblio.org/pub/mirrors/maven2
无论您使用哪个路径,更重要的是请求的资源是否存在,对该存储库的所有请求都将被重定向到 http://maven.ibiblio.org/maven2/
结果是,当从虚拟存储库请求工件时,在某个时刻 Artifactory 将尝试从该远程存储库中获取工件,并将获得重定向到存储库根目录的 302 应答。 Artifactory 假设它获得了它正在寻找的资源(获得了 200 响应代码),但是返回的资源是一个文件夹,因此在 URL.

末尾附加了 / 最好的解决方案就是删除这个远程存储库并依赖 JCenter.
如果确实需要,请使用 http://maven.ibiblio.org/maven2/ URL 来保存重定向。