当我的活动jdk是JDK8时,尝试使用maven工具链编译一个Java 17项目。我设置了我的工具链,以便他们使用JDK17编译它,并且这个编译在运行错误的测试时失败:
Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M7:test failed: java.lang.UnsupportedClassVersionError: my/source/ControllerTest has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0.我的pom tooLchain配置fr编译器和尽是火插件(M7版本):
<properties>
.....
<toolchain>17</toolchain>
<vendor>oracle</vendor>
</properties>
....
....
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<configuration>
<jdkToolchain>
<version>${toolchain}</version>
<vendor>${vendor}</vendor>
</jdkToolchain>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<jdkToolchain>
<version>${toolchain}</version>
<vendor>${vendor}</vendor>
</jdkToolchain>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<jdkToolchain>
<version>${toolchain}</version>
<vendor>${vendor}</vendor>
</jdkToolchain>
<argLine>@{surefireArgLine}</argLine>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
<includes>
<include>**/**Test.java</include>
</includes>
</config>为什么我的工具链配置没有被万无一失。编译本身是很好的,但是肯定会失败。感谢你的帮助
发布于 2022-09-28 02:37:28
我能够让工具链工作,如果我触发测试与"mvn测试“上的肯定火插件2.22。但是,如果测试是由“万无一失:测试”触发的,它就不会拾起工具链。
我一直在努力让它在“万无一失3”上发挥作用,但我一直遇到你发布的同样的问题。请告诉我,如果你找到了一个方法,使这个工作与万无一失3。
https://stackoverflow.com/questions/73775717
复制相似问题