【问题标题】:Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin未能执行目标 org.apache.maven.plugins:maven-enforcer-plugin
【发布时间】:2018-01-02 09:39:14
【问题描述】:

我有一个 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.xml 吗?我相信它包含实际的执行器插件,因为这个 pom 没有它。
  • 如果没有堆栈跟踪的上半部分,很难帮助您查看哪个执行器规则失败。

标签: java spring maven netbeans


【解决方案1】:

如果您使用的是maven-enforcer-plugin1.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

【讨论】:

    【解决方案2】:

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

    enforcer 插件在您的 “有效 pom” 中,您应该检查一下。 Effective pom是由超级pom+项目pom组成的配置文件。 maven 使用这个配置文件来执行相关的目标。它帮助开发人员在他/她的 pom.xml 中指定最少的配置细节。尽管可以轻松覆盖配置。

    为了展示你的有效 pom,有两种方法: 1-使用maven命令,运行这个命令:

     mvn help:effective-pom
    

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

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

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

    【讨论】:

    • 这个答案对我有帮助,对我来说是版本问题,当我更改版本时它已修复
    【解决方案3】:

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

    如果您看到以下消息:

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

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

    【讨论】:

    • maven-enforcer-plugin 很奇怪,即使 设置为 ERROR,错误(失败的规则)也会被记录为 [WARNING]
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

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

      请先检查版本:

      java -version
      javac -version
      

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

      【讨论】:

        【解决方案6】:

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

        Go to Settings ---&gt; builds --&gt; Maven --&gt;set the Maven home directory.

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

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

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

            【讨论】:

              【解决方案9】:

              这对我有用。

              mvn clean
              mvn clean install
              

              【讨论】:

                【解决方案10】:

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

                【讨论】:

                  【解决方案11】:

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

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

                  但通常情况下,尽管存在此强制错误,您的项目仍可以完美构建和运行,因此这是构建忽略错误的解决方法

                  跳过强制执行器(并不总是有效)

                  mvn clean install -Denforcer.skip=true
                  

                  如果出错则继续构建

                  mvn clean install -Denforcer.fail=false
                  

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

                  【讨论】:

                    【解决方案12】:

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

                    【讨论】:

                      【解决方案13】:

                      这个错误很可能是由于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。

                      【讨论】:

                        猜你喜欢
                        • 2013-05-30
                        • 2016-02-27
                        • 2015-11-08
                        • 2020-09-02
                        • 2012-09-04
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-03-11
                        • 1970-01-01
                        相关资源
                        最近更新 更多