我正面临Artifactory v3.9.5解决工件的问题.我有以下设置: 名为“gradle-snaphot”的本地存储库允许快照 名为“repos”的虚拟存储库,包含“gradle-snapshot” 神器X上传到“gradle-snapshot” 现在,当
>名为“gradle-snaphot”的本地存储库允许快照
>名为“repos”的虚拟存储库,包含“gradle-snapshot”
>神器X上传到“gradle-snapshot”
现在,当我尝试直接获取工件时,它工作正常(传递了信号,但在此省略):
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保存重定向.