我在远程存储库下的 Artifact 中有 jcenter 存储库。由于缺少一些 Artifact ,例如 qpid,我决定删除 jcenter 并将其添加回来。当我删除 jcenter 存储库并将其添加回来时,它没有下载任何 Artifact 。 存储库树结构如下所示
在删除 jcenter 存储库之前,它是这样的。 为什么它无法导入任何 Artifact ?我可以看到与其关联的 URL ( http://jcenter.bintray.com/ ) 有很多 Artifact 。
最佳答案
A remote repository在 Artifactory 中充当缓存代理。这意味着它从远程 URL 下载 Artifact 并将它们缓存在 Artifactory 中,
当您从 Artifactory 中删除 JCenter 存储库时,您删除了所有缓存的 Artifact 。
重新创建存储库后,您的缓存为空。这就是为什么当browsing jcenter-cache,您看不到任何 Artifact 。您可以使用 remote browsing能力,以查看哪些 Artifact 在远程 URL 中可用,但当前缓存不可用
要重新填充缓存,您需要从远程存储库下载 Artifact 。通常最好的方法是运行使用此存储库的构建。
如果问题是 Artifact 根本没有从远程存储库中解析,请尝试以下操作:
- 确保在 Artifactory 中正确配置存储库。使用“测试”按钮确保 URL 正确并且您可以访问远程 URL。
- 检查您的构建工具是否已正确配置以使用您配置的存储库。检查这一点的一种方法是监视 Artifactory request log寻找来自您的构建工具的请求。
当您缺少某些依赖项时,删除存储库并不是一个好的做法。更好的方法是检查它们是否在远程 URL 中可用并将它们下载到缓存中。 Artifactory 可以选择执行 remote search在 Bintray 中,它可以帮助您在 JCenter 中查找 Artifact 。
关于maven - 在 Artifact 中添加远程存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32442581/