Maven编译报错:multi-catch不支持-source1.5,Effective POM不可编辑求解决
解决Maven编译报错:multi-catch不支持-source 1.5的问题
问题原因
你的代码使用了Java 7引入的多catch语句(比如catch (ExceptionA | ExceptionB e)),但当前Maven编译环境默认采用Java 1.5的语法规则,导致编译失败。
解决方案
虽然Effective POM的配置无法直接编辑,但你可以在项目自身的pom.xml中显式配置maven-compiler-plugin,覆盖Effective POM的默认编译版本设置:
- 打开项目根目录下的
pom.xml文件 - 找到或添加
<build>标签,在其中插入maven-compiler-plugin的配置:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <!-- 可使用最新稳定版 --> <configuration> <source>1.8</source> <!-- 指定Java版本,至少1.7,推荐1.8及以上 --> <target>1.8</target> </configuration> </plugin> </plugins> </build>
- 保存文件后,重新执行
mvn install命令
原理说明
Maven的配置优先级为:项目本地pom.xml > 父pom.xml > Effective POM。通过在本地POM中显式指定编译插件的source和target参数,会覆盖Effective POM中默认的1.5版本设置,让编译器支持Java 7及以上的语法特性。
内容的提问来源于stack exchange,提问作者Madhu
相关产品推荐
相关产品推荐

