Maven/Jenkins java.lang.UnsupportedClassVersionError: неподдерживаемая версия major.minor 51.0

У меня есть Jenkins-сервер с JDK и JRE 6 и 7, установленными вместе.

Все проекты построены на 1,6, кроме одного, который зависит от 1.7.

Я сконфигурировал файл maven mm для использования компилятора Java из среды JAVA_HOME_7 PATH.

<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?

Большое спасибо, Атанас

Ответ 1

Вам нужно будет запустить тесты проверки с помощью java 7. По умолчанию surefire будет использовать тот же jvm, что и работающий maven - Java6 в вашем случае.

  <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>

Ответ 2

Я помню, что я также боролся с этой проблемой. Выполните следующие шаги для решения проблемы.

Причина:, когда установлено несколько JRE, а также множество java.exe также установлено во многих местах системы.

Решение: Измените переменную PATH в вашей среде и измените порядок java.exe. поместите местоположение java.exe в первую позицию, например, ниже кода

PATH = C:\Program Files\Java\jdk1.6.0 \; другой, другие, другие

Измените местоположение выше в соответствии с местом использования и установки.

Ответ 3

Я столкнулся с этой проблемой несколько раз, потому что у вас есть несколько версий jdk (jre) в вашей системе, поэтому просто установите JAVA_HOME в соответствующий jdk, с которым вы скомпилируете свой проект, и работа будет прекрасной.

Ответ 4

Посмотрите на свой каталог target/lib, у вас могут быть две версии одной и той же банки. Для меня это создавало pro