Maven编译报错求助:执行maven-compiler-plugin出现初始化异常
问题原因
你遇到的这个错误核心是maven-compiler-plugin版本与当前Java环境不兼容:
- 你当前使用的是Java 11,但Spring Boot 2.2.1.RELEASE默认依赖的
maven-compiler-plugin:3.8.1是基于Java 8的javac内部API开发的。而Java 9及以上版本已经移除了com.sun.tools.javac.code.TypeTags这个内部类,直接导致编译时触发初始化异常。 - 另外你的pom.xml里指定了
<java.version>1.8</java.version>,但实际运行环境是Java 11,版本不匹配也会加剧这个冲突。
解决方案
推荐你调整pom配置适配Java 11环境,具体步骤如下:
- 更新pom中的Java版本配置
把<properties>里的java.version改为11,让Maven明确知道你要编译的目标Java版本:
<properties> <java.version>11</java.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> </properties>
- 显式指定兼容Java 11的maven-compiler-plugin版本
在<build><plugins>中添加compiler插件配置,使用3.9.0及以上版本(该版本开始全面支持Java 9+):
<build> <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory> <plugins> <!-- 新增maven-compiler-plugin适配配置 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.9.0</version> <configuration> <release>11</release> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
- 重新执行编译命令
先清理之前的编译缓存,再执行install命令:
mvn clean install
可选方案(若想继续使用Java 8)
如果你不需要Java 11的特性,也可以把本地环境切换回Java 8,确保java -version显示为1.8.x版本,之后直接执行mvn install即可,无需修改pom配置。
内容的提问来源于stack exchange,提问作者CoderTn
相关产品推荐
相关产品推荐

