我已经安装了JDK 11和Maven 3.6.2,并且正在使用error prone编译我的Java Maven项目。在此配置下:
pom.xml:
<properties>
<java.version>11</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<useIncrementalCompilation>false</useIncrementalCompilation>
<compilerArgs>
<arg>-Xep:ParameterName:OFF</arg>
</compilerArgs>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>${google.error.prone.version}</version>
</dependency>
</dependencies>
</plugin>
我遇到了这个错误:
编译器异常:调用目标异常:无效的目标版本:11
我尝试按照以下信息操作: 无法使用Maven编译简单的Java 10 / Java 11项目 然而,升级ASM并没有改变任何东西。
mvn -v
命令,Maven会告诉你它正在使用哪个Java版本进行编译。请注意,不要改变原意。 - ernest_k<maven.compiler.release>11</maven.compiler.release>
来使用javac的--release
开关,以检查JDK9+中的bootclasspath等。我正在一个不需要这样配置的JDK11项目上工作。顺便说一句:如果我没记错的话,已经不支持endorsed目录了(记不清是哪个版本)... - khmarbaise