在本地网络中使用Sonatype nexus

And*_*s_D 16 java maven-2 nexus

我已经成功地为Java应用程序创建了一个小型软件工程环境(SEE),其中包括基于maven和nexus的其他工具.我的实际问题是 - 并不是一个真正的惊喜 - nexus通常需要访问互联网才能从中央存储库获取所请求的工件.但SEE必须严格脱机,并且无法改变它(安全原因).

我的第一个快速解决方案是镜像连接到互联网的机器上的nexus/maven安装,运行一些标准的pom来填充镜像连接并通过CD-ROM将缓存迁移到目标系统.蛮丑的.我真的不希望调整该过程来获取工件或新工件的更新.实际上,我们现在通常只是导入我们需要的库并使用来自中央和其他人的官方库来创建新的工件(使用nexus).

有没有人面临同样的挑战,找到了更聪明,更有效的方法?

编辑

感谢所有的答案,我想我必须更准确地解决实际问题以及我正在考虑的解决方案:我认为我必须创建,填充和同步一个私有的"中央"存储库,基于中央和互联网上的其他回购,或者确切地说:两个相同的存储库.一个连接到互联网,另一个连接到本地网络.然后我可以保持互联网连接的存储库"最新"并通过DVD将更改复制到本地存储库 - 这对于Nexus是可见的.

会有用吗?是否有关于如何在私有服务器上设置"中心"之类的文档,是否有一种同步所选工件的机制?

(我不想在开始时发表我的想法,因为我希望得到完全不同的想法)

编辑2 - "最佳实践" - 根据要求添加

我们在与互联网完全脱节的环境中使用maven的"最佳实践":

  • 我们在中央服务器上安装了nexus,以便软件开发工作站有一台服务器可以与之通信(这是我们自己的artefact存储库)
  • 我们将POM文件导出到具有Internet访问权限的工作站,清除了该计算机上的本地存储库并执行了dependency:go-offline(插件).这将使用所有必需的artedfacts填充本地存储库
  • 我们将此本地存储库导入安全环境并将所有插件添加到nexus(只复制文件 - 结构相同)

每周使用所有POM文件执行此操作(可以自动执行),并且您拥有一个非常稳定且可用的本地存储库.

Pas*_*ent 6

会有用吗?是否有关于如何在私有服务器上设置"中心"之类的文档,是否有一种同步所选工件的机制?

好吧,你可能成为中央的镜子但是,抓住~10 GB的文物有什么意义呢?您不需要所有这些,通常的建议是使用存储库管理器.

其实我最初的想法是:

  1. 在SEE外使用连接到互联网的Nexus
  2. rsync 这个Nexus的内容是DVD.
  3. 通过DVD将内容复制到SEE的Nexus.
  4. 定期重复.

我发现这个解决方案很难看,但是现在我们有更多关于你情况的细节,这可能是可以接受的.