【问题现象】

在使用maven构建springboot或springcloud项目中,提示如下错误:


Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.x.x:compile (default-compile) on project topten: Fatal error compiling

在这里插入图片描述

【原因】

项目对应的“maven-compiler-plugin”插件没有设置,或设置的环境与项目JDK的环境不一致导致。

对于Maven而言,如果我们不告诉它我们的代码要使用什么样的JDK版本编译的话,它就会用 “maven-compiler-plugin”默认的JDK版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。

“maven-compiler-plugin”是一个用来编译项目代码的Maven插件,它默认的编译器是javax.tools.JavaCompiler,用来编译Java源码,所以需要将该插件的版本与项目JDK的版本保持一致,才能进行编译。

【解决】

在pom.xml中添加如下内容,需要保证本版与项目JDK版本一致;
若已经有该内容,则只需将版本改为和JDK版本一致即可,如下。

同时,可以看到配置中有target、source两个版本配置,一般来说target、source两个版本配置是保持一致的,但是,有时候为了让程序能在其他版本的JDK中运行,会存在target不同于source的情况。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            
        </plugins>
    </build>

在这里插入图片描述
右击项目,打开“Open Module Settings”,找到“Project”-“Project SDK”,这里即项目所指定的JDK,后续大部分配置都需要与其保持版本一致,不然会出现兼容性错误,如图:
在这里插入图片描述
版本号保持一致后,IDEA右侧找到“Maven”工具栏,打开“LifeCycle”,执行“validate”或“compile”即可。
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐