今天早上 Maven 开始抱怨这个错误:
error: multi-catch statement is not supported in -source 1.5
奇怪的是,我使用的是 JDK 7,并且这段代码已经构建良好数周了。我只是将 m2e 与默认 POM 一起使用,没有指定编译器版本。
这是我的 Maven 版本信息:
Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500)
Java version: 1.7.0_03, vendor: Oracle Corporation
Java home: C:\SDKs\Java\jdk1.7.0_03\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
我可以通过使用 Maven 编译器插件来解决这个问题,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
尽管如此,我还是想了解为什么 Maven 会突然开始行为异常并需要使用编译器插件。
默认的源/目标级别是 1.5,显然它不支持 Java 1.7 语法。
- http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#source http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#source
- http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#target http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#target
至于为什么它会“突然”改变,你的 m2e 或项目配置发生了一些变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)