недійсний цільовий випуск: 1.7


121

Я бачив подібні запитання, але ще не знайшов відповіді.

Використовуючи компіляцію Maven, я отримую:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

Ось pom.xml:

<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>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Версія Javac:

javac 1.7.0_25

Версія Java:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Будь-яка ідея, що це може бути?


14
Швидше за все, maven працює на Java 6.
Пітер Лорі

3
Я перевірив би всі ваші змінні середовища, щоб побачити, чи хтось використовує Java 6. Наприклад, Java 7 може бути на вашому шляху, але я пам'ятаю, що Maven використовує JAVA_HOME або щось подібне.
Пітер Лорі

36
Виконати mvn -version. Він підкаже, яку Java використовує.
JB Nizet

ви праві, mvn використовує java 1.6 - як я можу це змінити?
Каран

1
встановіть змінну JAVA_HOME у домашній каталог JDK7.
JB Nizet

Відповіді:


159

Потрібно встановити JAVA_HOME у домашній каталог jdk7, наприклад у Microsoft Windows:

  • "C: \ програмні файли \ Java \ jdk1.7.0_40"

або в ОС X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
На Mac, де встановлені jdk6 та jdk7, це можна змусити в ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank

3
jdk8 також можна використовувати, щоб отримати відповідність jdk7
Вольфганг Фаль

3
не забудьте перезавантажити ~ / .profile на mac з:source ~/.profile
Caio Iglesias

Це, ймовірно, працює для багатьох речей, але цього недостатньо для Maven і, звичайно, не для плагіна компілятора Maven. Ознайомтеся з відповіддю Майка на його власне запитання тут: stackoverflow pitanje 24705877 Це вирішило проблему для мене як командного рядка, так і в межах затемнення. Також може допомогти відповідь @LinGao на запитання stackoverflow 2503658 та використання змінної $ JAVACMD.
Літома

42

Крім налаштування JAVA_HOMEзмінної середовища, ви повинні переконатися, що ви використовуєте правильний JDK в конфігурації запуску Maven. Перейдіть до пункту Виконати -> Конфігурація запуску , виберіть конфігурацію Maven Build, перейдіть на вкладку JRE і встановіть правильний JRE часу виконання.

Конфігурація запуску Maven


+1, я знав, що забуваю щось оновити ... Параметр за замовчуванням (для мене) при створенні конфігурації був "Alternate JRE". Якщо хтось інший працює над цим, переконайтеся, що ваш плагін Maven та конфігурації належним чином оновлені!
king14nyr

У мене був правильний JAVA_HOME для Java 8, але мені цього ще не вистачало. Ви вирішили мою проблему, дякую
dtortola

3

У IntelliJ IDEA це сталося зі мною, коли я імпортував проект, який добре працював і працює з Java 1.7. Я, мабуть, не повідомив IntelliJ, що на моїй машині встановлено java 1.7, і він не знайшов свого $JAVA_HOME.

На Mac це вирішено за допомогою:

Клацніть правою кнопкою миші на модулі | Налаштування модуля | Проект

та додавши 1,7 SDK, вибравши "Нове" у проекті SDK.

Потім перейдіть до головного меню IntelliJ IDEA | Налаштування | Мавен | Бігун

і виберіть правильний JRE. У моєму випадку він оновив правильно Use Project SDK, який зараз був 1,7.


Зауважте, що принаймні існують параметри проекту та налаштування для Intellij на Mac, мені довелося перейти до «Налаштування» -> «Збірка Exec», «Розгортання»> «Компілятор Java», а потім встановити версію байтового коду проекту за необхідністю.
Відкрито

1

Коли maven працює поза Eclipse, але даючи цю помилку після зміни JDK, перейдіть до конфігурації запуску Maven, а внизу головної сторінки є параметр "Maven Runtime". Шахта використовувала Вбудовану Maven, тому після переключення на зовнішню систему Maven вона працювала.


де конфігурація запуску Maven, будь ласка?
R Клавен

1
Клацніть правою кнопкою миші на build.xml, перейдіть до пункту "Виконати як", а потім "Запустити конфігурацію". Якщо ви прокручуєте типи конфігурацій запуску, один з них - "Maven Build", у якому є можливість вибрати "Maven Runtime". Поруч із цим є кнопка "налаштувати"
djb

0

Це, ймовірно, працює для багатьох речей, але цього недостатньо для Maven і, звичайно, не для плагіна компілятора Maven.

Ознайомтеся з відповіддю Майка на його власне запитання тут: стаціонарне запитання 24705877

Це вирішило проблему для мене як командного рядка, так і в межах eclipse.

Також відповідь @LinGao на запитання stackoverflow 2503658 та використання змінної $ JAVACMD може допомогти, але я сам не перевіряв її.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.