我有一个使用Java 8的项目。
到目前为止,我们在pom中将源版本和目标版本指定为1.8:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
我们要利用Java 9+的“ -release”选项并添加以下内容:
<maven.compiler.release>1.8</maven.compiler.release>
但是现在我们收到以下错误:
Fatal error compiling: release version 1.8 not supported
我们使用的是maven 3.5.3、3.8.0版的maven-compiler-plugin和Java 10来编译项目。
这是怎么了?
答案 0 :(得分:5)
这应该有效
<maven.compiler.release>8</maven.compiler.release>
因为<release>
属性仅适用于版本的主要版本。
通过这种方式,它假定这是实际的编译器插件配置中使用的参数,类似于:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>${maven.compiler.release}</release>
</configuration>
</plugin>
答案 1 :(得分:0)
就我而言,我不得不更改版本、来源和目标。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>8</maven.compiler.release>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>