当前位置: 首页 > 面试题库 >

Maven / Jenkins java.lang.UnsupportedClassVersionError:不支持的major.minor版本51.0

楚望
2023-03-14
问题内容

我有一台同时安装了JDK和JRE 6和7的Jenkins服务器。

除了依赖1.7的项目外,所有项目均基于1.6。

我已经将maven pom文件配置为使用来自JAVA_HOME_7环境PATH的Java编译器。

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <showDeprecation>true</showDeprecation>
                    <showWarnings>true</showWarnings>
                    **<executable>${env.JAVA_HOME_7}/bin/javac</executable>**
                    <fork>true</fork>
                    <verbose>false</verbose>
                </configuration>
            </plugin>

在mvn安装期间,出现以下错误:

java.lang.RuntimeException: There was an error in the forked process
java.lang.UnsupportedClassVersionError: : Unsupported major.minor version 51.0

我认为这意味着服务器正在使用JRE 1.6。

如何将JRE 1.6与1.7保持在一起,以保持与旧版1.6项目和新版1.7项目的兼容性?

非常感谢Atanas


问题答案:

您还需要使用Java 7运行surefire测试。默认情况下,surefire将使用与运行maven-Java6相同的jvm。

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


 类似资料: