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