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