将 Maven 插件放入 nexus 仓库

Put Maven plugins in nexus repository

我想用 Nexus 设置一个 Maven 存储库,它没有连接到 Maven Central(由于公司政策)。

现在 Maven 在我启动时尝试下载很多插件:所有下载都失败,因为我没有连接到 Maven 中心。

是否可以将插件放入我的 Nexus 存储库或使用一组合理的插件安装 Maven?

感觉你的需求不一致:Nexus是镜像。 Maven 中央是面子。 Nexus 内容是反射。你想要没有脸的倒影。那是不可能的。

但答案必须是肯定的。我提供两种选择。

实用:

  1. 将 Maven 中央插入 Nexus(将面部添加到镜像)
  2. 构建应用程序:它将为 Nexus 提供插件(捕获反射)
  3. 拔掉 Maven 中心

科学的:

  1. 致电mvn dependency:resolve-plugins。您应该会收到几条消息,例如

[WARNING] The POM for org.apache.maven.plugins:maven-clean-plugin:jar:2.5 is missing, no dependency information available

  1. 添加插件工件到 Nexus(如前所述,这不是问题)
  2. 重复步骤 1 直到所有插件都被解析

如果您想拥有一个手动管理和配置的存储库,您必须先配置所需的依赖项和插件。

您可以例如用我的 Maven Repository Provisioner 来做。

或者您可以通过 运行 一组连接到中央存储库的构建来提供 Nexus 存储库,然后在代理需要的任何内容后将其离线。

另一个更好的解决方案是使用 policy-based 方法并使用 Nexus Firewall.

您可能还对手动配置方法的问题感兴趣。我在 http://blog.sonatype.com/2013/10/golden-repository/

上写了这篇博客

无论哪种情况,您都必须设置和配置您的 Maven settings.xml,这样您的插件和项目的依赖关系就不会混淆。

别忘了,Maven 依赖于插件、插件依赖项和项目依赖项的存储库。所有这些都必须可用。