【问题标题】:Setting up Maven Nexus Server for team to share in-house built jars为团队设置 Maven Nexus 服务器以共享内部构建的 jar
【发布时间】:2012-09-26 18:52:07
【问题描述】:

我的团队刚刚开始在 Java 项目中使用 Maven。我们现在所有项目都使用 Maven 从 Internet 获取依赖项,但我们想使用 Maven 存储库来共享我们制作并打包在 jar 中的公共共享 Java 类。

我设置了一个 Maven Nexus 服务器,看起来它作为代理工作得很好。下一步是获取我们构建的一个 jar 并将其部署到本地 nexus 存储库中,因此任何开发人员都可以将其作为依赖项共享。但是我不知道从哪里开始。

如果我执行 mvn 安装,它会将代码放入本地(我的电脑)存储库,这不是我想要的。我想将它安装在 nexus repo 上,这样我团队中的每个人都可以访问它。请帮帮我。

【问题讨论】:

    标签: java spring maven nexus


    【解决方案1】:

    您可以使用 DistributionManagement maven 插件执行工件的部署或安装。更多细节在这里。 http://www.stefanolocati.it/blog/?p=1034

    【讨论】:

      【解决方案2】:

      您可能对此有所了解,但here is a high-level overview (for others) about setting up a Maven repository

      一旦你有了一个存储库,你需要返回到每个依赖项目(或者如果它们共享一个主 pom)并定义存储库,以便将其添加到将为构建拉取的源存储库中.

      我使用Apache's Archiva 取得了很好的效果,它支持作为 Maven 项目请求的“缓存代理”,这样如果它不能为二进制工件本身提供服务,它将从上游存储库下载和收集二进制工件。也就是说,文档可能会更好一些。

      还有其他产品,例如Artifactory,它们都被认为很好。您可能希望将其视为评估的候选对象。

      您的构建不需要存储库管理系统,任何具有正确目录结构的 ssh 服务器都可以;然而,拥有这样一个系统可以让您的生活更轻松,因为自动缓存与请求代理相结合,提供了一种管理用户访问的方法,构建和管理多个存储库(开发/QA 发布/通用可用性),以及运行可能使管理变得复杂的奇怪报告更容易(如果你使用它们)。

      就实际使用这样的服务器而言,您需要修改 pom 的两个“部分”,并且需要添加一个(可能)附加文件。

      1. 您必须重新配置项目的 部分才能从存储库中提取。
      2. 您必须重新配置项目的 部分才能部署到新的存储库。
      3. 您必须修改或创建“settings.xml”文件来存储访问存储库的凭据。

      除此之外,它变成了风格问题。我建议通过设置两个存储库将快照与“发布”分开。这使您可以经常从快照存储库中清除旧文件,而不会对长期需要的发布版本造成风险。

      然后您需要决定是否要缓存内部构建所需的所有项目。如果是这样,您需要重新配置项目以不从“外部”存储库中提取,并将“丢失”的工件下载到存储库的正确目录中。许多存储库管理产品的“自动代理缓存”功能正是这样做的。

      然后您需要决定是否要在内部缓存 maven 系统的所有插件。如果是这样,您需要一个 pluginRepository,如果您想要部署自定义插件,则需要一个 pluginSnapshotRepository。是的,这听起来很多,但同时做四个这样的存储库只是做一个多一点的工作。

      祝你好运!

      【讨论】:

        猜你喜欢
        • 2019-10-10
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-01
        • 2018-11-29
        • 1970-01-01
        • 2017-09-18
        相关资源
        最近更新 更多