抢先将工件下载到Sonatype Nexus以便离线使用

时间:2018-12-06 10:49:20

标签: maven gradle nexus sonatype

我在安全敏感的环境中工作,在开发过程中必须对计算机进行气密处理,并且万不得已时要上网。我知道这并不理想。

我在本地计算机上建立了一个sonatype存储库,但是它仅在下载工件时缓存它们,并且我不知道我现在需要的所有工件,因此我需要缓存所有内容。

是否可以从Maven Central,Pypi,nuget等下载所有工件?那里有预包装的Blob吗?

2 个答案:

答案 0 :(得分:2)

不可能。 MavenCentral非常庞大,可能数十TB甚至更多。

您需要缓存构建所需的工件。如果需要更多,则需要再次连接到Internet。

答案 1 :(得分:1)

the official documentation在这里说:

  

创建自己的镜像   中央存储库的大小为increasing steadily为节省带宽和您的时间,不允许镜像整个中央存储库。 (这样做会使您自动被禁止)。相反,我们建议您设置repository manager作为代理。

     

如果您真的想成为官方镜像,请通过MVNCENTRAL与我们联系并提供您的位置,我们将努力为您进行设置。

因此,您所做的-本地代理-是一个很好的解决方案。

现在,我想问一个问题:没有Internet连接,您如何知道需要什么库?我的意思是您需要知道库的Maven坐标才能下载它,但是除非您是心灵感应者,否则没有网络是不可能的。

然后,您是在说您正在安全敏感的环境中工作,但同时又是要下载所有Central并能够使用任何库。安全不是这样工作的。当真正关心安全性时,他会审核代码并仅使用经过验证的工件。拥有PGP密钥的任何人都可以将任何东西放在中央。

另一件事:托管本地代理存储库有点废话,因为Maven本身将所有需要的工件缓存在~/.m2/中。因此,现在您具有相同工件的两个副本:一个副本在本地Nexus中,另一个在您的主目录中。顺便说一句,您可以使用mvn dependency:go-offline预先下载当前项目所需的所有内容。

相关问题