【问题标题】:mvn test fails because of Surefire JDK version?由于 Surefire JDK 版本,mvn 测试失败?
【发布时间】:2014-12-12 08:25:44
【问题描述】:

我正在尝试在我的项目上运行 mvn test。项目本身编译并安装,但 man test 失败,输出如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18:test (default-test) on project udms-server: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18:test failed: There was an error in the forked process
[ERROR] java.lang.UnsupportedClassVersionError: some/project/Event : Unsupported major.minor version 52.0
[ERROR] at java.lang.ClassLoader.defineClass1(Native Method)
[ERROR] at java.lang.ClassLoader.defineClass(Unknown Source)
[ERROR] at java.security.SecureClassLoader.defineClass(Unknown Source)
[ERROR] at java.net.URLClassLoader.defineClass(Unknown Source)
[ERROR] at java.net.URLClassLoader.access$100(Unknown Source)
[ERROR] at java.net.URLClassLoader$1.run(Unknown Source)
[ERROR] at java.net.URLClassLoader$1.run(Unknown Source)
[ERROR] at java.security.AccessController.doPrivileged(Native Method)
[ERROR] at java.net.URLClassLoader.findClass(Unknown Source)
[ERROR] at java.lang.ClassLoader.loadClass(Unknown Source)
[ERROR] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[ERROR] at java.lang.ClassLoader.loadClass(Unknown Source)
[ERROR] at java.lang.ClassLoader.defineClass1(Native Method)
[ERROR] at java.lang.ClassLoader.defineClass(Unknown Source)
[ERROR] at java.security.SecureClassLoader.defineClass(Unknown Source)
[ERROR] at java.net.URLClassLoader.defineClass(Unknown Source)
[ERROR] at java.net.URLClassLoader.access$100(Unknown Source)
[ERROR] at java.net.URLClassLoader$1.run(Unknown Source)
[ERROR] at java.net.URLClassLoader$1.run(Unknown Source)
[ERROR] at java.security.AccessController.doPrivileged(Native Method)
[ERROR] at java.net.URLClassLoader.findClass(Unknown Source)
[ERROR] at java.lang.ClassLoader.loadClass(Unknown Source)
[ERROR] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[ERROR] at java.lang.ClassLoader.loadClass(Unknown Source)
[ERROR] at org.apache.maven.surefire.util.DefaultScanResult.loadClass(DefaultScanResult.java:131)
[ERROR] at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:95)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.scanClassPath(JUnit4Provider.java:194)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:92)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

我认为 some/project 是使用 Java 8 编译的...所以我将当前项目也更改为使用 Java 8 而不是 7。我倾向于认为这与这些问题有关:

Can't fix Unsupported major.minor version 52.0 even after fixing compatibility

Unsupported major.minor version 52.0

现在我完全卡住了:(

【问题讨论】:

    标签: maven java-8 surefire


    【解决方案1】:

    JVM 应在插件配置中明确设置。

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
          <jvm>${env.JAVA_HOME}/bin/java</jvm>
        </configuration>
      </plugin>
    

    【讨论】:

      【解决方案2】:

      确保您的 Maven 运行时版本 >= JRE 1.8。

      在控制台运行java -version检查版本,如果mvn命令也在控制台执行。或者,如果在 IDE 中执行 maven,则可以在 IDE 中更改 maven JRE。

      UnsupportedClassVersionError:

      当 Java 虚拟机尝试读取类文件并且 确定文件中的主要和次要版本号是 不支持。

      【讨论】:

        【解决方案3】:

        似乎我没有在 Eclipse 中更新我的 Maven(右键单击项目 -> Maven -> 更新项目...)或在窗口 -> 首选项 -> Java -> 编译器选项中选择 JDK 8。完成这两个之后,一切都再次完美运行:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-07-31
          • 2020-03-26
          • 1970-01-01
          • 2019-07-06
          • 2022-09-30
          • 2017-09-01
          • 2011-11-14
          相关资源
          最近更新 更多