我遇到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构建无法解决此依赖关系。
答案 0 :(得分:7)
此问题的根本原因是指向http://mirrors.ibiblio.org/pub/mirrors/maven2的远程存储库
无论您使用哪个路径,对此存储库的所有请求都将重定向到http://maven.ibiblio.org/maven2/,更重要的是请求的资源是否存在。
结果是,当从虚拟存储库请求工件时,Artifactory将在某个时刻尝试从此远程存储库获取工件,并获得302应答,该应答重定向到存储库的根目录。 Artifactory假设它获得了它正在寻找的资源(获得了200个响应代码),但返回的资源是一个文件夹,因此URL的末尾附加/。
最好的解决方案是删除此远程存储库并依赖JCenter 如果确实需要,请使用http://maven.ibiblio.org/maven2/ URL来保存重定向。