使用OSS软件镜像Maven存储库(使用Artifactory OSS尝试)

时间:2018-12-07 16:50:20

标签: java maven gradle server artifactory

现状概述:

  • 我有一个位于其他位置的公司Maven存储库
  • 与所述存储库的互联网连接非常慢
  • 我想在我的站点上托管一个缓存/镜像,以便我和我的团队可以更快地下载依赖项
  • 我们只有一个依赖项,因为它的大小为8GB,这意味着下载大约需要40分钟。

所以我尝试使用Artifactory OSS,但是:

  • 官方的“存储库复制”功能被锁定在每年=> 3k $的付费墙后面。它基本上与以某种方式主动缓存的“远程存储库”相同。 Sonatype Nexus OSS的情况几乎相同。
  • 我通常会在Artifactory中使用简单的“远程存储库”,但是它的行为很奇怪。
  • 预期的功能是,客户端从现场Artifactory远程存储库请求一个指向场外实际服务器的依赖项。如果未缓存,则现场服务器将从场外服务器下载它。然后由现场服务器将其提供给客户端
  • 当请求较大的依赖关系时,现场服务器将开始下载,并且在约30秒后,客户端将获得套接字超时并停止整个gradle构建
  • 有一个名为“本地存储”的选项,当停用该选项时,会将请求转发到异地服务器,并且根本不缓存
  • 我想要的是当请求依赖项时,现场服务器开始缓存,但是响应此服务器上不存在依赖项(导致客户端查看场外服务器)或转发向异地服务器发出请求,就像禁用“存储区域设置”时一样

毕竟我不确定问题出在哪里。我必须以不同的方式配置Artifactory或Gradle吗?还有其他我可以用来创建镜像的东西吗?完全可以接受的解决方案是每天晚上运行复制脚本,但我更喜欢使用Artifactory OSS解决它。

1 个答案:

答案 0 :(得分:0)

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

您的要求相当不寻常。我会考虑20MB“大”的依赖,而我从未见过超过100MB的依赖。您的8GB东西不是罐子,对不对? Nexus / Artifactory并非用于此类物品。

首先,我会问8GB的问题。它是什么?为什么这么大?

如果您不能更改它,我将定期在构建服务器上运行mvn dependency:get或类似的命令。这样,您的现场Artifactory / Nexus通常会提供相关版本,并且您的构建不会超时。