我已经成功地为 Java 应用程序创建了一个小型软件工程环境 (SEE),它是基于 maven 和 nexus 的工具之一。我的实际问题是——这并不奇怪——nexus 通常需要访问互联网才能从中央存储库中获取请求的工件。但是 SEE 必须严格脱机并且没有办法改变它(.. 安全原因)。
我的第一个快速解决方案是在连接到 Internet 的机器上镜像 nexus/maven 安装,运行一些标准 pom 来填充镜像的 nexus 并通过 CD-ROM 将缓存迁移到目标系统。真是丑。我并不真的期待调整该过程以获取工件或新工件的更新。事实上,我们现在通常只是导入我们需要的库并创建新的工件(使用 nexus),而不是使用来自 Central 和其他人的官方库。
有没有人面临同样的挑战并找到了更聪明、更有效的方法?
编辑
感谢所有答案,我认为我必须更准确地了解实际问题和我目前正在考虑的解决方案:我认为我必须创建、填充和同步一个基于中央的私有“中央”存储库和互联网上的其他存储库,或者确切地说:两个相同的存储库。一个连接到互联网,另一个连接到本地网络。然后我可以保持互联网连接的存储库“最新”并通过 DVD 将更改复制到本地存储库 - 这对 Nexus 是可见的。
它会起作用吗?是否有关于如何在私有服务器上设置类似“中央”的文档,是否有同步选定工件的机制?
(一开始不想发表我的想法,因为我希望得到完全不同的想法)
编辑 2 - “最佳实践” - 根据要求添加
我们在完全与互联网断开连接的环境中使用 maven 的“最佳实践”:
- 我们在中央服务器上安装了 nexus,以便软件开发工作站有一个服务器可以与之通信(它是我们自己的人工制品存储库)
- 我们将 POM 文件导出到可以访问 Internet 的工作站,清除该机器上的本地存储库并执行
dependency:go-offline
(插件)。这用所有必需的 artedfacts 填充了本地存储库 - 我们将此本地存储库导入到安全环境中,并将所有插件添加到 nexus(只是复制了文件 - 结构相同)
每周对所有 POM 文件执行一次(可以自动化),您就拥有了一个非常稳定且可用的本地存储库。