Неустранимая компиляция ошибок: недопустимая целевая версия: 1.8 → [Справка 1]
Аналогичная проблема, подобная той, что была отправлена на недействительной целевой версии: 1.7, но после просмотра блога моя проблема все еще не решена.
Не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 3.1: компиляция (по умолчанию-компиляция) в проекте hm_app: фатальная компиляция ошибок: недопустимая целевая версия: 1.8 → [Help 1]
Я столкнулся с в качестве учебника, когда столкнулся с этой проблемой.
abt java & mvn
C:\mvn>echo %JAVA_HOME%
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields
выходы
C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\apache-maven-3.0.4
Ответы
Ответ 1
Вы установили %JAVA_HOME
в jdk 1.7, но вы пытаетесь скомпилировать его с помощью 1.8. Установите jdk 1.8 и убедитесь, что ваш %JAVA_HOME
указывает на это или отбрасывает целевую версию до 1.7.
недействительный целевой выпуск: 1,8
Целевой релиз относится к версии jdk.
Ответ 2
Поместите значение в плагин:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Ошибка:
<source>${java.version}</source>
<target>${java.version}</target>
Ответ 3
В моем случае maven "Run configuration" использовал неправильную JRE (1.7). Обязательно проверьте Запустить → Запустить конфигурации → (Tab) JRE, чтобы быть некоторым jdk1.8.x.
Ответ 4
Проблема была решена, поскольку у меня был JDK, указывающий на 1.7 и JRE, указывающий на 1.8. В командной строке введите команду
java -version
и
javac -version.
Оба должны быть одинаковыми.
Ответ 5
Для затмения вот как я решил свою проблему:
-
Настройки → Компилятор → Уровень компилятора компилятора (изменение на 1.8) ![enter image description here]()
-
Perferences → Установленные JRE → выберите JAVA SE 8 1.8 ![enter image description here]()
-
Перестройте через maven, используя Run as maven build.
Это больше не должно показывать вам неверную целевую ошибку.
Примечание: мне не нужно было устанавливать или изменять какие-либо другие переменные в моем терминале. Надеюсь это поможет.
Ответ 6
Положив это в ваш .profile, вы будете динамически заботиться о своем $JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
Закройте оболочку, откройте новую и проверьте с помощью
echo $JAVA_HOME
Он должен отображать что-то вроде
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
Если не, удалите любые другие назначения JAVA_HOME в сценариях запуска. Помните, что эти сценарии запуска начинаются с .
, поэтому они скрыты и не будут включены при использовании подстановочного символа *
, например. если вы хотите grep все файлы вашего домашнего каталога, вам необходимо:
grep -s JAVA_HOME ~/.* --exclude=.bash_history
Ответ 7
Проблема, с которой я столкнулся, заключалась в том, что я смог создать сборку maven из командной строки, но не из Eclipse. Что мне работало в eclipse, так это то, что я изменил конфигурацию запуска, чтобы указать на папку JRE внутри JDK, а не оставляя его в папке JDK только в соответствии со стандартом. Это решение может работать и на вас, но попробуйте это, если и только если все пути Java верны, java и javac показывают ту же версию, что и в target pom.xml.
Ответ 8
Этот вопрос не задавался явно о Docker, но я получил ту же ошибку, когда у меня был файл pom.xml, предназначенный для 1.9...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.9</maven.compiler.source>
<maven.compiler.target>1.9</maven.compiler.target>
</properties>
... но затем попытался запустить тесты для контейнера Docker, указав "maven" сам по себе.
docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test
Для меня исправление было предназначено для точной версии, в которой я нуждался.
docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test
(Вы можете узнать больше здесь.)
Ответ 9
Я столкнулся с этой проблемой при развертывании на Dokku, по какой-то причине он выбирал JDK 1.7
Создание файла system.properties
и установка java.runtime.version=1.8
решили проблему. Dokku теперь использует Java версии 8. Выбор JDK на Heroku
Мне никогда не приходилось делать это раньше...
Ответ 10
На Windows-машине вы можете временно установить версию Java.
Например, чтобы изменить версию на Java 8, выполните эту команду в cmd
:
set JAVA_HOME=C:\\...\jdk1.8.0_65
Ответ 11
Выполните принудительное обновление Maven, которое принесет совместимые версии 1.8 Jar, а затем при сборке обновите версии JRE в среде Execute до 1.8 из Run Configurations и нажмите RUN
Ответ 12
Если вы используете Eclipse IDE, перейдите в меню "Окно" и выберите настройки, и там вы найдете установленные JRE и выберите JRE, необходимую для построения проекта.
Ответ 13
Что сработало в моем случае это:
Я открыл pom.xml
и заменил один из плагинов, как pom.xml
ниже.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
До того, как я отредактировал теги source и target, оба имели 1.8
, я изменил их на 1.7
и это сработало.