如何修复找不到插件工件?
How to fix not finding a plugin artifact?
我收到此错误:[ERROR] 插件 org.apache.maven.plugins:maven-surefire-plugin:2.12.4 或其依赖项之一无法解析:找不到工件 org.apache.maven.plugins: maven-surefire-plugin:jar:2.12.4 in nexus-xyz-plugin
我尝试 运行 使用 dependecy:tree maven,但我看不到万无一失,我不知道为什么它正在寻找我的中未指定的特定版本 2.12.4 pom!
我的 pom 中甚至没有定义 surefire 插件,但我有 assembly 插件,不确定 assemblely 是否依赖于 surefire
请注意,我只在 运行ning mvn package 时出现错误,但是当 运行ning mvn compile 构建成功时
maven-surefire-plugin 的 2.12.4
版本总是由 maven 版本 3.x
添加到 pom,除非你依赖于特定的其他版本。
Maven 有一个所谓的 super pom
,你可以免费获得它,但它并没有列出 surefire:https://maven.apache.org/ref/3.8.5/maven-model-builder/super-pom.html
但是它被添加到 pom 中,我已经用 maven 3.3.9 对此进行了检查。您可以通过 运行 mvn help:effective-pom
.
来验证这一点
同样问题的引用:No surefire plugin in my pom - How does it show surefire output?
这些插件版本是生命周期执行的默认绑定的一部分,在本例中为 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 central 中可用,请检查您的(有效)pom 中是否有 <pluginRepository>
引用 https://repo1.maven.org/maven2/
您可以检查的其他一些内容:
- 打开文件
.m2\repository\org\apache\maven\plugins\maven-surefire-plugin.12.4\maven-surefire-plugin-2.12.4.jar.lastUpdated
并检查每个存储库的错误消息。查看为什么不能到达maven central;它是否从列表中丢失或出现错误?这可能是公司 firewall/policy 的问题?或者它是否在 HTTPS/TLS 协议级别上给出错误?
- 检查是否可以将 maven central 添加到您的存储库列表中,如果它以某种方式丢失(默认情况下应该包含在内)。检查它是
HTTP
还是 HTTPS
,现在只支持安全。
- 运行 你的 maven 命令
-X
用于调试模式以进一步调查
另一种方法是将 latest version of surefire 添加到您的 plugin-repository 中可用的项目中,如果您不执行单元测试,则可能禁用它。
见Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.
我收到此错误:[ERROR] 插件 org.apache.maven.plugins:maven-surefire-plugin:2.12.4 或其依赖项之一无法解析:找不到工件 org.apache.maven.plugins: maven-surefire-plugin:jar:2.12.4 in nexus-xyz-plugin
我尝试 运行 使用 dependecy:tree maven,但我看不到万无一失,我不知道为什么它正在寻找我的中未指定的特定版本 2.12.4 pom!
我的 pom 中甚至没有定义 surefire 插件,但我有 assembly 插件,不确定 assemblely 是否依赖于 surefire
请注意,我只在 运行ning mvn package 时出现错误,但是当 运行ning mvn compile 构建成功时
maven-surefire-plugin 的 2.12.4
版本总是由 maven 版本 3.x
添加到 pom,除非你依赖于特定的其他版本。
Maven 有一个所谓的 super pom
,你可以免费获得它,但它并没有列出 surefire:https://maven.apache.org/ref/3.8.5/maven-model-builder/super-pom.html
但是它被添加到 pom 中,我已经用 maven 3.3.9 对此进行了检查。您可以通过 运行 mvn help:effective-pom
.
同样问题的引用:No surefire plugin in my pom - How does it show surefire output?
这些插件版本是生命周期执行的默认绑定的一部分,在本例中为 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 central 中可用,请检查您的(有效)pom 中是否有 <pluginRepository>
引用 https://repo1.maven.org/maven2/
您可以检查的其他一些内容:
- 打开文件
.m2\repository\org\apache\maven\plugins\maven-surefire-plugin.12.4\maven-surefire-plugin-2.12.4.jar.lastUpdated
并检查每个存储库的错误消息。查看为什么不能到达maven central;它是否从列表中丢失或出现错误?这可能是公司 firewall/policy 的问题?或者它是否在 HTTPS/TLS 协议级别上给出错误? - 检查是否可以将 maven central 添加到您的存储库列表中,如果它以某种方式丢失(默认情况下应该包含在内)。检查它是
HTTP
还是HTTPS
,现在只支持安全。 - 运行 你的 maven 命令
-X
用于调试模式以进一步调查
另一种方法是将 latest version of surefire 添加到您的 plugin-repository 中可用的项目中,如果您不执行单元测试,则可能禁用它。
见Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.