【问题标题】:Mirror Maven Repository using OSS Software (tried using Artifactory OSS)使用 OSS 软件镜像 Maven 存储库(使用 Artifactory OSS 尝试过)
【发布时间】: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


【解决方案1】:

我相对确定,Artifactory 或 Nexus 都无法实现您想要的。

您的要求很不寻常。我会考虑使用 20MB“大”的依赖项,我从未见过超过 100MB 的依赖项。你的 8GB 东西不是罐子,对吧? Nexus/Artifactory 不适合这种东西。

首先,我会质疑 8GB 的​​东西。它是什么?为什么这么大?

如果你不能改变它,我会定期在构建服务器上运行mvn dependency:get 或类似的东西。这样,您的现场 Artifactory/Nexus 将(通常)具有相关版本,并且您的构建不会超时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2016-08-16
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多