代码之家  ›  专栏  ›  技术社区  ›  Andreas Dolk

在本地网络中使用Sonatype nexus[已关闭]

  •  14
  • Andreas Dolk  · 技术社区  · 15 年前

    我已经成功地为Java应用程序创建了一个小型软件工程环境(请参阅),该环境与其他工具一样,基于maven和nexus。我的实际问题是——这并不奇怪——nexus通常需要访问internet才能从中央存储库获取所请求的工件。但是SEE必须严格离线,并且没有办法改变它(。。安全原因)。

    我的第一个快速解决方案是在连接到internet的机器上镜像nexus/maven安装,运行一些标准pom来填充镜像的nexus,并通过CD-ROM将缓存迁移到目标系统。很难看。我并不是真的期待着调整这个过程来获得工件或新工件的更新。事实上,我们现在通常只导入我们需要的库并创建新的工件(使用nexus),而不是使用central和其他公司的官方工件。

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

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

    这样行吗?是否有关于如何在专用服务器上设置类似“中心”的内容的文档,是否有同步选定工件的机制?

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

    我们在与互联网完全断开连接的环境中使用maven的“最佳实践”:

    • 我们在一台中央服务器上安装了nexus,这样软件开发工作站就有了一台可以与之对话的服务器(这是我们自己的人工制品存储库)
    • 我们将POM文件导出到可访问internet的工作站,清除该机器上的本地存储库,并执行了一次 dependency:go-offline plugin ). 这将使用所有必需的事实填充本地存储库
    • 我们将这个本地存储库导入到安全环境中,并将所有插件添加到nexus(只是复制了文件-结构相同)

    每周对所有POM文件执行一次此操作(可以自动执行),您就有了一个非常稳定且可用的本地存储库。

    4 回复  |  直到 9 年前
        1
  •  6
  •   Pascal Thivent    15 年前

    好吧,你可以成为一个 mirror 但是,获取~10GB的人工制品有什么意义?您不需要所有这些工具,通常的建议是使用存储库管理器。

    实际上,我最初的想法是:

    1. 使用连接到外部internet的Nexus查看
    2. rsync 此连接到DVD的内容。

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

        2
  •  4
  •   sfussenegger    15 年前

    我曾经在一个网络环境中工作过,在这个环境中,网络的一部分无法访问internet或任何其他网络。每当我们需要更新此网络中的软件时,我们都会执行以下操作:

    1. 将更新的软件上载到“安全”主机(step stone)
    2. 将踏脚石从网上断开
    3. 将更新的软件推送到存储库
    4. 从安全网上断开踏脚石

    我们通过自动配置交换机以适当地连接和断开网络(因此始终存在物理连接,但没有可用的IP连接),完全自动化了此过程。也许你也可以做类似的事情——这取决于“断开连接”定义的灵活性。)

        3
  •  3
  •   Brian Laframboise    15 年前

    通常,我们托管Nexus的服务器将无法访问Internet。然而,我会见了运营团队,并向他们解释说,允许Nexus自动从互联网下载工件对我们来说是一个巨大的生产力胜利。

    一旦他们了解了我们的需求,ops就允许服务器访问一个非常严格的互联网IP白名单,比如中央Maven存储库。因此,当外部存储库IP地址发生变化时,我们仍然必须通过ops来添加新的存储库或执行白名单修复。但总体而言,我们认为这是安全性和生产力之间的最佳折衷方案,对我们来说是可行的。

    一旦您向您的利益相关者重申这样做将如何提高您的工作效率并最终节省所有人的时间,请查看您的利益相关者是否会以高度受限的白名单方式将您的网络连接到Internet。

        4
  •  3
  •   Brian Fox    15 年前

    NexusPro中的采购功能正是为了处理这个用例而设计的。

    What is Procurement?

    Procurement Suite User guide