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

Maven多模块项目编译失败求助:Source/Target选项5不再支持

解决Maven多模块项目编译报错「Source/Target option 5不再支持」的方案

为啥会报错

你用的maven-compiler-plugin:3.1已经彻底不支持Java 5了,但Maven默认会把源码版本(source)和目标字节码版本(target)设为5,所以编译直接失败,提示你得用7或更高版本。

怎么解决

1. 父POM里统一配置编译版本

打开父项目的pom.xml,找到<build>下的<plugins>节点,添加或者修改maven-compiler-plugin的配置,指定source和target为7以上的版本(比如常用的Java 8,对应1.8):

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <!-- 这里改成你实际用的JDK版本,比如11就写11 -->
                <source>1.8</source>
                <target>1.8</target>
                <!-- 顺便加个编码配置,避免中文乱码问题 -->
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

如果父POM里已经有这个插件,直接改<configuration>里的source和target值就行。

2. 检查子模块有没有单独改配置

有些子模块可能自己写了编译插件的配置,会覆盖父POM的设置。挨个检查子模块的pom.xml,如果有单独的maven-compiler-plugin配置,要么改成和父POM一致的版本,要么直接删掉子模块里的这段配置,让它继承父POM的设置。

3. 确认本地JDK版本够不够

你指定的source/target版本不能比本地用的JDK版本高。比如你配置了1.8,那本地必须装了Java 8及以上版本。可以跑下面的命令看当前Maven用的JDK:

mvn -v

看输出里的Java version是不是符合要求。

额外提醒

如果项目非得兼容老版本JDK,但又不想换插件版本,也可以把maven-compiler-plugin升级到更高版本(比如3.8.1),新版本对不同JDK的兼容性更好。不过更建议直接把项目的JDK版本升到7以上,毕竟Java 5早就被淘汰了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:25:09