我知道这个问题之前已被多次询问过,但到目前为止,没有一个答案解决了我的问题。
我正在尝试编译一个maven项目。 已编译的类文件必须为1.7格式。 但由于某种原因,它似乎遇到了一个用1.8版编译的JDK类(javax / tools / DiagnosticListener)。
这是我得到的错误......
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-compiler-plugin:3.3:compile: java.lang.UnsupportedClassVersionError: javax/tools/DiagnosticListener : Unsupported major.minor version 52.0
我相信我已经在pom.xml中正确配置了编译器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
JAVA_HOME设置正确......
>echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
>java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
>javac -version
javac 1.7.0_80\
>mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.7.0_80, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac"
我已经物理删除了所有版本的jdk 1.8安装...
>ls -lF /Library/Java/JavaVirtualMachines
total 0
drwxr-xr-x 3 root wheel 102 Jul 14 2015 1.6.0.jdk/
drwxr-xr-x 3 root wheel 102 Mar 24 2016 jdk1.7.0_80.jdk/
然而似乎maven仍在尝试使用1.8版本的SDK进行编译。
我不确定这是怎么回事或如何解决。