【问题标题】:Failed to execute goal maven-compiler-plugin 3.8.0 - org/codehaus/plexus/compiler/manager/NoSuchCompilerException未能执行目标 maven-compiler-plugin 3.8.0 - org/codehaus/plexus/compiler/manager/NoSuchCompilerException
【发布时间】:2019-04-03 10:18:53
【问题描述】:

我正在使用 Maven 3.5.3 和 JDK 1.8。当我尝试使用 mvn clean compile 从 cmd 编译我的项目时,控制台返回以下错误:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< com.dadopay:DadopayDAOAggregator >------------------
[INFO] Building DadopayDAOAggregator 1.0.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ DadopayDAOAggregator ---
[INFO] Deleting C:\Users\..\Documents\Workspace\Dadopay_DAO_Aggregator\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ DadopayDAOAggregator ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ DadopayDAOAggregator ---
[WARNING] Error injecting: org.apache.maven.plugin.compiler.CompilerMojo
java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/manager/NoSuchCompilerException
   ...
    Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.compiler.manager.NoSuchCompilerException
  ...
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 13.753 s
    [INFO] Finished at: 2018-10-30T12:02:58+01:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project DadopayDAOAggregator: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile failed: A required class was missing while executing org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile: org/codehaus/plexus/compiler/manager/NoSuchCompilerException
    [ERROR] -----------------------------------------------------
    [ERROR] realm =    plugin>org.apache.maven.plugins:maven-compiler-plugin:3.8.0
    [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
    [ERROR] urls[0] = file:/../.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/3.8.0/maven-compiler-plugin-3.8.0.jar
    [ERROR] urls[1] = file:/../.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
    [ERROR] urls[2] = file:/../.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
    [ERROR] urls[3] = file:/../.m2/repository/org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.jar
    [ERROR] urls[4] = file:/../.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
    [ERROR] urls[5] = file:/../.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
    [ERROR] urls[6] = file:/../.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
    [ERROR] urls[7] = file:/../.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
    [ERROR] urls[8] = file:/../.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
    [ERROR] urls[9] = file:/../.m2/repository/org/apache/maven/shared/maven-shared-utils/3.2.1/maven-shared-utils-3.2.1.jar
    [ERROR] urls[10] = file:/../.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
    [ERROR] urls[11] = file:/../.m2/repository/org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.jar
    [ERROR] urls[12] = file:/../.m2/repository/org/codehaus/plexus/plexus-java/0.9.10/plexus-java-0.9.10.jar
    [ERROR] urls[13] = file:/../.m2/repository/org/ow2/asm/asm/6.2/asm-6.2.jar
    [ERROR] urls[14] = file:/../.m2/repository/com/thoughtworks/qdox/qdox/2.0-M9/qdox-2.0-M9.jar
    [ERROR] urls[15] = file:/../.m2/repository/org/codehaus/plexus/plexus-compiler-api/2.8.4/plexus-compiler-api-2.8.4.jar
    [ERROR] urls[16] = file:/../.m2/repository/org/codehaus/plexus/plexus-compiler-manager/2.8.4/plexus-compiler-manager-2.8.4.jar
    [ERROR] urls[17] = file:/../.m2/repository/org/codehaus/plexus/plexus-compiler-javac/2.8.4/plexus-compiler-javac-2.8.4.jar
    [ERROR] Number of foreign imports: 1
    [ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
    [ERROR]
    [ERROR] -----------------------------------------------------
    [ERROR] : org.codehaus.plexus.compiler.manager.NoSuchCompilerException
    [ERROR] -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

我的 pom:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dadopay</groupId>
    <artifactId>DadopayDAOAggregator</artifactId>
    <version>1.0.0</version>
    <name>DadopayDAOAggregator</name>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <scope>test</scope>
                    </configuration>

                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.1RELEASE</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.1RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.1RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8.1</version>
        </dependency>

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>10.2.0.3.0</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
            <exclusions>
                <exclusion>
                    <artifactId>xercesImpl</artifactId>
                    <groupId>xerces</groupId>
                </exclusion>
            </exclusions>
        </dependency>

    </dependencies>

我已经看到了一些类似this this 的帖子;我试图删除所有 .m2 文件夹,更改 pom 中的源代码并检查报告为 url 的所有 jar 是否存在于我的存储库中(并且都存在)。

谢谢

编辑 - mvn -v 结果:

Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T20:49:05+01:00)
Maven home: C:\Program Files\maven\bin\..
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_171\jre
Default locale: it_IT, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

我的项目结构:

src
   main
        java
             it.noatel.data_access.bean
             it.noatel.data_access.dao
             it.noatel.data_access.commons
             it.noatel.data_access.dao.impl.jdbc
             it.noatel.data_access.dao.impl.commons
             it.noatel.data_access.util

【问题讨论】:

  • 可以添加mvn --version命令结果吗?
  • 嗨,卡罗尔,谢谢您的回复。我刚刚添加了版本的结果。
  • 尝试在你的 maven 编译器插件中删除 test
  • @elfuser 你可以尝试将你的 maven 编译器插件的版本降级到 3.3
  • @elfuser 看到这个link

标签: java maven maven-compiler-plugin


【解决方案1】:

我使用 Intellij Idea,我通过重建项目解决了这个问题

构建 -> 重建项目

【讨论】:

    【解决方案2】:

    最好的办法是彻底清除您的磁盘并从here 安装最新版本 (3.5.3)。请务必从系统窗口中删除环境变量并重新创建。

    【讨论】:

      【解决方案3】:

      系统安装的Apache Maven版本3.5.3(mvn -v的结果)低于maven-compiler-plugin的版本 3.8.0 在你的 pom.xml 中

      【讨论】:

      • @elfuser 你能把你项目的结构贴出来,是他们的父pom和模块pom吗?
      • @Yugurten 刚刚添加了完成的 pom 和结构。
      • @elfuser 尝试删除 并让 .... 在构建空间上
      • 将插件版本降级到 3.5.1 对我有用,但这真的相关吗?在另一台计算机上,3.8.0 可以与 Maven 3.6 一起正常工作,它也“低于”3.8。你有这个的来源(毕竟,它被设置为报价)?
      【解决方案4】:

      在 Eclipse 中,Ant java.home 变量不是基于 Windows JAVA_HOME 环境变量。相反,它被设置为项目 JRE 的主目录。

      要更改默认 JRE(例如将其更改为 JDK),您可以转到 Windows->Preferences... 并选择 Java->Installed JREs.-> Edit-> C:\Program Files\Java \jdk1.8.0_172

      【讨论】:

      • 问题不在 Eclipse 上。之后,eclipse中的JDK就对了。
      猜你喜欢
      • 2019-04-09
      • 2013-05-30
      • 2022-09-28
      • 2020-09-02
      • 2021-03-11
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多