Ошибка компиляции Maven: (используйте оператор 7 или выше для включения оператора бриллианта)
Я использую maven в IntelliJ, JDK1.8, maven 3.2.5. Получил ошибку компиляции: используйте -source 7 или выше, чтобы включить функцию бриллианта. детали:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] TrainingConstructor.java:[31,55] diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator)
[ERROR] DTM.java:[79,21] try-with-resources is not supported in -source 1.5 (use -source 7 or higher to enable try-with-resources)
[ERROR] ticons.java:[53,44] diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator)
Любые предложения? Есть ли другая конфигурация для установки этого уровня? похоже, он не использует java 1.8.
Ответы
Ответ 1
Проверьте, как настроен ваш maven-compiler-plugin
, он должен использовать java-версию 7 или выше:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
Для более полного ответа см. ниже ниже.
Ответ 2
РЕШЕНИЕ 1. Установите эти свойства в pom.xml
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
РЕШЕНИЕ 2. Настройка плагина компилятора Maven (всегда в pom.xml)
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
ПОЧЕМУ ЭТО ПРОИСХОДИТ
Проблема возникает потому, что
[...] в настоящее время настройка источника по умолчанию - 1,5, а настройка цели по умолчанию - 1,5, независимо от JDK, с которым вы запускаете Maven. Если вы хотите изменить эти значения по умолчанию, вам следует установить источник и цель как описано в разделе Установка -source и -target компилятора Java.
Maven Compiler Plugin Introduction (until version 3.3)
и с последними версиями Maven:
Также обратите внимание, что в настоящее время настройка источника по умолчанию - 1.6, а настройка цели по умолчанию - 1.6, независимо от JDK, с которым вы запускаете Maven. Мы настоятельно рекомендуем изменить эти значения по умолчанию, установив источник и цель, как описано в разделе "Установка -source и -target компилятора Java".
Maven Compiler Plugin Introduction
Поэтому изменение JDK не влияет на уровень источника. Таким образом, у вас есть несколько способов сообщить Maven, какой уровень источника использовать.
JDK ВЕРСИЯ ДЛЯ ИСПОЛЬЗОВАНИЯ?
Если вы установите цель 1.7, как в этом примере, убедитесь, что команда mvn действительно запущена с jdk7 (или выше)
УРОВЕНЬ ЯЗЫКА НА ИДЕ
Обычно IDE используют файл maven pom.xml в качестве источника конфигурации проекта.
Изменение параметров компилятора в IDE не всегда влияет на сборку maven.
Поэтому лучший способ обеспечить постоянное управление проектом с помощью maven (и совместимость с другими IDE) - это отредактировать файлы pom.xml и дать команду IDE синхронизироваться с maven.
Ответ 3
Вам нужно изменить конфигурацию:
<project>
[...]
<build>
[...]
<plugins>
<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>
</plugins>
[...]
</build>
[...]
</project>
Вы должны узнать разницу между опцией source/taget
в JavaC и использованием JDK 1.8/1.7 и т.д.
Кроме того, вы должны обновить использование maven-compiler-plugin.
Ответ 4
Если вы уже пробовали решение @Sergey Pauk и @khmarbaise, посмотрите также в настройках → Build, Execution, Deployment → Compiler → Java Compiler, есть целевые версии байт-кода для определенных модулей
Ответ 5
У меня возникла аналогичная ошибка, когда я разрабатывал графический интерфейс, в какой-то момент я попытался использовать combo-box, но код вернет эту ошибку, хотя это позволит мне запустить код в любом случае. Я переключился на полосу прокрутки, которая работает без ошибок и обладает такой же эффективностью и полезностью, как и поле со списком после того, как вы установили правильные параметры в Spinner-model.