设置Maven Nexus Server以便团队共享内部构建的jar

tec*_*012 7 java spring nexus maven

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

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

如果我进行mvn安装,它会将代码放入本地(我的电脑)repo,这不是我正在寻找的.我想在nexus repo上安装它,所以我的团队中的每个人都可以访问它.请帮帮我.

Edw*_*uck 3

您可能对此有所了解,但这里是有关设置 Maven 存储库的高级概述(针对其他人)

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

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

还有其他产品,例如Artifactory,也受到好评。您可能希望将其视为评估的候选者。

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

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

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

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

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

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

祝你好运!