我正在使用Maven在IntelliJ中创建一个项目,但是当我运行mvn install
或mvn test
来运行我编写的简单JUnit测试时,它会失败并显示以下错误:
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project Idlearn: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test failed: Unsupported class file major version 61 -> [Help 1]
我的pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>mimuw</groupId>
<artifactId>Idlearn</artifactId>
<version>1</version>
<name>Idlearn</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- for platform independent encoding-->
<junit.version>5.8.2</junit.version> <!-- the latest JUnit version -->
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
我觉得我已经尝试了网络上的所有可能解决方案,但都无济于事。
最初的问题是我的测试无法运行。命令mvn test
会输出正在运行SomeClassTest
,但实际上并没有运行其中包含的任何测试(所有测试都像我在许多在线教程中找到的一样创建)。看起来我缺少了maven-surefire
,现在我就有了它。
java -version
输出以及echo %JAVA_HOME%
(Windows)或echo $JAVA_HOME
(Linux)的输出。 - Rob Spoorjava -version
打印出了预期的openjdk version "17.0.2" 2022-01-18 (...)
。echo $JAVA_HOME
打印出了一个空行……这很奇怪,因为我在~/.profile
中设置了export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
。 - Maurycytecho $JAVA_HOME
正确地输出了预期的内容,但问题仍然存在。 - Maurycytorg.apache.maven.plugins:maven-surefire-plugin
版本3.0.0-M5
中得到了修复。 - lealceldeiro