我已经安装了JDK11和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>我得到了这个错误:
CompilerException: InvocationTargetException:无效的目标版本: 11
我尝试遵循以下信息:Unable to compile simple Java 10 / Java 11 project with Maven
但是,升级ASM并没有改变任何事情。
发布于 2020-06-29 18:01:51
根据maven文档:
编译器插件用于编译项目的源代码。从3.0开始,默认编译器是javax.tools.JavaCompiler (如果您使用的是Java1.6),用于编译java源代码。如果你想强制使用javac插件,你必须配置插件选项forceJavacCompilerUse。
还要注意,目前缺省的源设置是1.6,缺省的目标设置是1.6,独立于运行Maven的JDK。强烈建议您通过设置源和目标来更改这些缺省值,如设置Java编译器的-source和-target中所述。
将源和目标更改为11后,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>上面提到的无效java 11版本错误没有出现
发布于 2021-11-08 22:03:14
我放入了属性:1.11,在maven编译器pugin中是这样的: 11 11。它对我有效。
https://stackoverflow.com/questions/58147824
复制相似问题