繁体   English   中英

无法执行目标 org.apache.maven.plugins:maven-enforcer-plugin

[英]Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin

我有一个 maven spring 项目但是当我尝试运行它时,我不能......关于它的一些想法......
接下来是错误信息:

BUILD FAILURE
------------------------------------------------------------------------
Total time: 4.532s
Finished at: Wed Jul 26 16:04:06 COT 2017
Final Memory: 17M/196M
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce
(enforce-versions) on project SIMI: Some Enforcer rules have failed. Look above for
specific messages explaining why the rule failed. -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.

使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。

有关错误和可能的解决方案的更多信息,请阅读以下文章: [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

可能导致此问题的一件事是在您的项目中的 POM 文件中设置了所需的 java 或 maven 版本。 你应该找到它...但是如何? 也许你在你的项目中找不到像我这样的实施者......(我遇到了同样的问题,我很困惑,因为我的项目 POM 中没有定义实施者插件,所以我找不到它)。

执行器插件在您的“有效 pom”中,您应该检查它。 有效pom是由super pom + project pom组成的配置文件。 maven 使用这个配置文件来执行相关的目标。 它帮助开发人员在他/她的 pom.xml 中指定最少的配置细节。 虽然配置可以很容易地被覆盖。

为了显示您的有效 pom,有两种方法:1-使用 maven 命令,运行以下命令:

 mvn help:effective-pom

2-使用您的IDE:在Maven窗口中右键单击您的项目节点并选择显示有效POM(这取决于您的IDE)。

在你找到你的力量之后,你可以在你的项目中找到它并改变它。 对我来说,我的有效 POM有强制插件,它使用 Java 的 requireMavenVersion 规则是 1.8。 所以我将我的项目JDK版本更改为1.8,幸运的是问题得到了解决。

我希望这个答案可以帮助你。

你应该解决问题的根本原因,你的一些依赖,mvn/java版本之间的冲突,有很多可能的原因。

如果可能有来自不同包的同一库的 2 个不同版本或实现,您可以运行mvn dependency:tree并检查列表。 通常你会在框架中的某个地方有一个父 pom 或依赖项,它与你添加到 pom.xml 中的不兼容。

但通常,尽管有这个强制错误,你的项目可以完美地构建和运行,所以这是构建忽略错误的解决方法

跳过执行者(并不总是有效)

mvn clean install -Denforcer.skip=true

出错时继续构建

mvn clean install -Denforcer.fail=false

也可能有一些方法可以将特定库从强制执行规则中排除,这可能比跳过所有内容更好。

如果您使用的是maven-enforcer-plugin版本1.4.1并导致此错误,那么您需要使用旧版本的maven-enforcer-plugin 您可以在下面找到 Maven 依赖项:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.3.1</version>
</plugin>

其他版本可以从下面的链接中找到。

https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-enforcer-plugin

另外,检查您的 Maven 版本。 如果您使用的是maven 3.0.x那么您需要使用maven-enforcer-plugin 1.4.1

有人可能正在强制执行特定的 Maven 版本。

如果您看到以下消息:

[警告] 规则 0:org.apache.maven.plugins.enforcer.RequireMavenVersion 失败并显示消息:检测到的 Maven 版本:3.5.4 不在允许的范围内 [3.5.2,3.5.2]。

然后将您的 Maven 安装更改为指定范围内的内容。 在此示例中,仅允许使用版本 3.5.2。

此错误可能是由于 pom 文件中指定的 java 版本与您系统中的 java 不匹配造成的。 我的系统中安装了 Java 16,但 pom 指向的是 Java 版本 8。

有两种方法可以解决这个问题:

  1. 将 pom 文件中的 java 版本更新为你 PC 上安装的 java 版本,但这可能会导致很多依赖问题。
  2. 卸载系统中安装的 java,并重新安装 pom 文件中指定的 java 版本。 您可以按照以下步骤执行此操作:

使用以下命令检查系统中的 java 版本:

java -version

然后检查你的 pom 文件中定义的 java 版本。 会是这样的

<project.java.version>1.8</project.java.version>

安装 JDK 8。

我遇到了这个问题,因为 Java (java) 是第 8 版,而 Java 编译器 (javac) 是第 11 版。

如果您需要手动切换版本,这对于 Windows 用户来说很典型。

请先检查版本:

java -version
javac -version

如果使用 IDE,例如 IntelliJ Idea,那么我建议也仔细研究项目设置。 也许完全删除IDE生成的文件并再次导入项目是有意义的。

我遇到了同样的问题,并通过修复 pom 版本来解决它。 下面的命令没有在所有子 pom 上正常运行,导致不同的 pom 版本。 'mvn versions:set -DnewVersion=${NEW_VERSION} versions:commit' 如果有依赖pom,则检查所有妈妈是否具有相同的版本。

在做了一些研究之后找到了答案。如果你使用 IntelliJ

Go to Settings ---> builds --> Maven -->set the Maven home directory.

在此处输入图像描述

我遇到了这个问题。 这是因为使用了 Maven 二进制版本。

我使用了 maven 3.0.3 版本。 并且执行器插件对此并不可靠。 因此将 maven 二进制文件更改为最新的 3.6.3。 这个问题得到了解决并且工作得很好。

首先转到项目并运行 mvn clean ,如果构建成功则只需检查所需的依赖项是否下载到您的 .m2 文件夹中,如果依赖项没有下载到本地 .m2 文件夹中,则表示版本号不正确因为该依赖或工件路径不正确

否则,如果 mvn clean 本身失败,而 .m2 文件夹中存在依赖项,则意味着 yoru settings.xml 文件实际上已损坏

您可能应该检查在某处是否有相同工件的两个不同版本。 当我想添加新的 Maven 依赖项而我已经将它添加到具有不同版本的不同依赖项项目中时,我遇到了它。

检查您的 maven 版本,例如,如果您正在安装 Apache-CXF 3.6 而您的 maven 版本是 3.0.5,则会出现错误。 如果你安装的是 Apache-CXF 3.6,maven 的最低版本必须是 3.1,Java 的最低版本必须是 8。

在我的情况下,显然存在导致此错误的配置冲突。 所以当我临时删除/home/myuser/.m2/settings.xml文件时,每行maven执行成功。

注意:在我的场景中,我有 Eclipse 和 maven 插件,我试图通过命令行使用 maven,然后出现了这个错误消息。

我最初使用以下命令检查了 java 版本java -version因为它不在所需的 java 版本上,所以我使用以下命令更改了 java 版本sudo update-alternatives --config java这个命令给了我选择所需的选项Java 版本。 正确选择 java 后,我可以执行以下命令mvn clean install -DskipTests并且构建成功。因此解决了这个问题

这对我有用。

mvn clean
mvn clean install

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM