先发制人地将工件下载到Sonateype Nexus以供离线使用



我在一个安全敏感的环境中工作,在开发过程中我必须对我的计算机进行空气隔离,并将作为最后手段上线。我知道这并不理想。

我在本地计算机上设置了一个sontype存储库,但它只在我下载工件时缓存工件,我现在不知道我需要的所有工件,所以我需要缓存所有东西。

有没有办法从maven central、Pypi、nuget等下载所有工件?外面有没有预先包装好的斑点?

这是不可能的。MavenCentral规模巨大,可能有几十TB甚至更多。

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

以下是官方文档中的内容:

创建自己的镜像中央储存库的规模正在稳步增加为了节省带宽和时间,不允许镜像整个中央存储库。(这样做会自动禁止你(相反,我们建议您设置一个存储库管理器作为代理。

如果您真的想成为官方镜像,请在MVNCENTRAL与我们联系,告知您的位置,我们将为您进行设置。

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

现在我想问你一个问题:没有互联网连接,你怎么知道你需要什么图书馆?我的意思是,你需要知道一个库的Maven坐标才能下载它,但没有网络是不可能的,除非你是一个心灵感应者。

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

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

最新更新