【发布时间】:2019-05-09 11:14:57
【问题描述】:
现状概览:
- 我有一个托管在不同位置的公司 Maven 存储库
- 与所述存储库的 Internet 连接速度很慢
- 我想在我的站点上托管一个缓存/镜像,以便我和我的团队可以更快地下载依赖项
- 我们有一个突出的依赖项,因为它的大小为 8GB,这意味着下载大约需要 40 分钟
所以我尝试使用 Artifactory OSS,但是:
- 官方的“存储库复制”功能被锁定在 >=3k$/年的付费墙后面。它基本上与以一种或另一种方式主动缓存的“远程存储库”相同。 Sonatype Nexus OSS 的情况几乎相同。
- 我通常可以在 Artifactory 中使用普通的“远程存储库”,但它的行为很奇怪。
- 预期的功能是客户端从现场 Artifactory 远程存储库中请求依赖项,指向场外实际服务器。如果未缓存,则现场服务器从场外服务器下载。然后由现场服务器提供给客户端
- 当请求大量依赖时,现场服务器开始下载,大约 30 秒后,客户端收到套接字超时并停止整个 gradle 构建
- 有一个名为“本地存储”的选项,在停用时会将请求转发到异地服务器并且根本不缓存
- 我想要的是现场服务器在请求依赖项时开始缓存,但响应此服务器上不存在依赖项(导致客户端查看场外服务器)或转发向异地服务器发出请求,就像禁用“本地存储”时一样
毕竟我不确定问题出在哪里。我是否必须以不同的方式配置 Artifactory 或 Gradle?还有什么我可以用来创建镜子的吗?一个完全可以接受的解决方案是每晚运行一个复制脚本,但我更喜欢使用 Artifactory OSS 来解决它。
【问题讨论】:
-
通常你托管一个本地缓存,它反映了 Central 的内容。该内容是按需下载的......此外,您在自己的位置有一个 8 GiB 大小的依赖项?真的吗?您将哪个用作依赖项?听起来很奇怪...通常您将 Nexus 作为镜像/缓存运行,而不是作为 Central 的复制...这是免费的吗?...?
标签: java maven gradle server artifactory