You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ中微服务Maven编译失败求助:maven-compiler-plugin报错

Maven编译失败问题排查与解决

问题描述

我下载了多款微服务项目,执行mvn clean及mvn install -DskipTests命令时,均出现构建失败,错误日志如下:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.229 s
[INFO] Finished at: 2019-02-09T10:04:32+05:30
[INFO] Final Memory: 36M/130M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project invoice-microservice: Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags -> [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/MojoExecutionException

我的环境信息:

  • Maven版本:Apache Maven 3.5.2
  • Maven主目录:/usr/share/maven
  • Java版本:10.0.2,厂商:Oracle Corporation
  • Java主目录:/usr/lib/jvm/java-11-openjdk-amd64
  • 默认区域设置:en_US,平台编码:UTF-8
  • 操作系统:linux,版本:4.15.0-44-generic,架构:amd64,家族:unix

问题分析

这个错误的核心是com.sun.tools.javac.code.TypeTags类找不到——这个类在Java 9及之后的版本里被移除了,而你使用的maven-compiler-plugin:3.5.1是比较老旧的版本,它依赖这个已被移除的类,所以在Java 10/11环境下会直接编译失败。另外你的Java环境还存在矛盾:显示的Java版本是10.0.2,但JAVA_HOME指向的是Java 11的OpenJDK,这种版本不一致也可能加剧问题。

解决方案

1. 升级Maven编译插件版本

在项目的pom.xml中,找到maven-compiler-plugin的配置,把版本升级到3.8.1及以上(这个版本开始完全支持Java 9+)。示例配置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <!-- 指定和你实际环境一致的Java版本,比如10或者11 -->
                <source>10</source>
                <target>10</target>
            </configuration>
        </plugin>
    </plugins>
</build>

如果是多模块项目,建议在父pom.xml中统一配置这个插件版本,避免每个子模块单独修改。

2. 统一Java环境配置

检查你的JAVA_HOME环境变量,确保它指向的JDK版本和java -version输出的版本一致:

  • 如果你想使用Java 10:把JAVA_HOME设置为Oracle JDK 10的路径,比如执行export JAVA_HOME=/path/to/java-10-oracle
  • 如果你想使用Java 11:确保java -version输出的是OpenJDK 11,若不一致则调整环境变量

修改后执行mvn -v验证,确认Maven使用的Java版本和你配置的一致。

3. 重新执行构建命令

完成上述配置后,重新执行:

mvn clean install -DskipTests

内容的提问来源于stack exchange,提问作者Isuru Jayasinghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:25:19