提问者:小点点

如何修复找不到插件神器?


我收到这个错误:[错误]插件组织。阿帕奇。专家插件:maven surefire插件:2.12.4或其依赖项之一无法解析:找不到工件组织。阿帕奇。专家nexus xyz插件中的插件:maven surefire插件:jar:2.12.4

我试图运行maven与依赖:树,但我看不到surefire,我不知道为什么它正在寻找这个特定的版本2.12.4,这是没有指定在我的pom!

即使surefire插件也没有在我的pom中定义,但我的汇编插件不确定assembely是否依赖于surefire

请注意,我只在运行mvn包时收到错误,但是在运行mvn compile时构建成功


共1个答案

匿名用户

maven-surefire插件的版本2.12.4总是由maven version3. x添加到pom中,除非您依赖于特定的其他版本。

Maven有一个所谓的超级pom,你可以免费获得,但这并没有列出surefire:https://maven.apache.org/ref/3.8.5/maven-model-builder/super-pom.html

不管它是如何添加到pom中的,我已经用maven 3.3.9对此进行了检查。您可以通过运行mvn帮助:有效pom来验证这一点。

参考相同的问题:没有surefire插件在我的pom-它如何显示surefire输出?

这些插件版本是生命周期执行的默认绑定的一部分,在这种情况下是test阶段。因此,如果未指定,这些插件始终包含在内。

参考请参见:

  • https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
  • https://maven.apache.org/ref/3.8.5/maven-core/default-bindings.html
  • Maven默认生命周期和插件部分

通常这个插件应该在maven Central中可用,检查您是否有

您可以检查其他一些事项:

  • 打开文件。m2\repository\org\apache\maven\plugins\maven-surefire-plugin\2.12.4\maven-surefire-plugin-2.12.4。罐子上次更新,并检查每个存储库的错误消息。检查为什么无法到达maven central;列表中是否缺少或给出错误?这可能是公司防火墙/策略问题?还是在HTTPS/TLS协议级别上出现错误

另一种方法是将最新版本的surefire添加到插件库中可用的项目中,如果不执行单元测试,则可能会禁用它。

请参阅未能执行目标组织。阿帕奇。专家插件:maven surefire插件:2.12:项目测试(默认测试)。