Під час запуску тесту JUnit, використовуючи IntelliJ IDEA, я отримую
Як я можу це виправити?
- Використання SDK 1.7
- Рівень мови модуля - 1,7
Maven build працює чудово. (Тому я вважаю це проблемою в конфігурації IDEA)
Під час запуску тесту JUnit, використовуючи IntelliJ IDEA, я отримую
Як я можу це виправити?
Maven build працює чудово. (Тому я вважаю це проблемою в конфігурації IDEA)
Відповіді:
Швидше за все, у вас тут імпортовані з Maven неправильні параметри компілятора:
Також перевірте параметри версій байтового коду проекту та модуля ( цільової ), зазначені на скріншоті.
Інші місця, де налаштовано рівень мови джерела :
Рівень мови за замовчуванням Maven - 1,5 (5,0), ви побачите цю версію як рівень мови модуля на скріншоті вище.
Це можна змінити за допомогою конфігурації плагіна maven-компілятор всередині pom.xml
:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
або
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
IntelliJ IDEA поважатиме цей параметр після того, як ви повторно імпортуєте проект Maven у вікні інструменту Maven Projects :
pom.xml
конфігурація модуля компілятора Java може вказати версію Java, яка змінить це налаштування наступного разу, коли ви внесете зміни до pom.xml (якщо включений автоматичний повторний імпорт) або реімпортуйте проект вручну.
Подібно до описаного нижче для IntelliJ 13 і 14, але з додатковим рівнем на панелі "Налаштування / Налаштування": " Налаштування" > " Створення", "Виконання", "Розгортання" > " Компілятор" > " Компілятор Java" .
У IntelliJ 13 та 14 перевірте Параметри> Компілятор> Користувальницький інтерфейс Java Compiler, щоб переконатися, що ви не орієнтуєтесь на іншу версію байт-коду у своєму модулі.
У IntelliJ IDEA 14.1 "Цільова версія байт-коду" знаходиться в іншому місці.
Наступна зміна спрацювала для мене:
Файл> Налаштування ...> Створення, виконання, розгортання> Компілятор> Компілятор Java : змініть цільову версію байт-коду з 1,5 на 1,8
Якщо ви подивилися на конфігурацію збірки, то це має подобатися, якщо ви використовуєте Maven 3 та JDK 7
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
Я наткнувся на це, і виправлення було, щоб перейти в Налаштування проекту> Модулі> натиснути на конкретний модуль> вкладку Залежності. Я помітив, що модуль SDK все ще був встановлений на 1.6, я змінив його на 1.7, і він працював.
Змініть файл налаштування компілятора проекту наступним шляхом та змініть «ціль» на 1,7:
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
Я вирішив це, встановивши поле порожнім:
Налаштування> Компілятор> Компілятор Java> Версія байт-коду проекту
Тоді IntelliJ використовує версію JDK за замовчуванням.
З однієї миті в іншу я також отримав цю помилку без чіткої причини. Я змінив усі налаштування компілятора / модуля і т. Д. Але врешті-решт я просто відтворив проект IntelliJ, повторно імпортувавши проект Maven, і питання було вирішено. Я думаю, що це помилка.
IntelliJ 12 129.961
Я домігся цього лише після незначного оновлення IntelliJ IDEA 14 до v14.1. Для мене змінилася редакція верхньої / батьківської пам’яті, а потім натиснув повторний імпорт Maven (якщо він не є автоматичним).
Але, можливо, достатньо клацнути правою кнопкою миші на модулі / агрегаті / батьківському модулі та Maven -> Reimport.
Якщо це проект Gradle, у файлі build.gradle знайдіть наступні налаштування:
sourceCompatibility = "xx"
targetCompatibility = "xx"
Для всіх субпоектів у вашому кореневому файлі build.gradle ви можете помістити:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Хоча ви можете вручну встановити рівні мови в Idea> Settings, якщо це проект Gradle, Idea автоматично синхронізує файли .iml модуля з налаштувань Gradle (протестовано з Idea 15+). Таким чином, всі ваші зміни вручну переосмислюються, коли Gradle оновлюється.
На основі документації Gradle , якщо вони не встановлені, використовується поточна конфігурація JVM.
Я знайшов інший спосіб зіткнутися з цією помилкою. Ви можете це отримати, якщо ви переорганізували структуру каталогу, і один з ваших партнерів вказує на старий батьків, який більше не налаштовує javac (тому що ця конфігурація була перенесена на середній рівень). Якщо це трапляється, за замовчуванням верхнього рівня до 1,5, а помпоз нижчого рівня, який не поводиться, успадковує це.
Тож ще одна річ, яку потрібно перевірити, коли ви бачите цю помилку, це те, що ваша структура pom відповідає відповідній структурі вашого каталогу.
Якщо збірка Maven працює нормально, спробуйте синхронізувати структуру проектів Maven та IntelliJ IDEA.
У вікні інструменту Maven натисніть кнопку оновлення . Натиснувши цю кнопку, IntelliJ IDEA аналізує структуру проекту у вікні інструменту Maven.
Зауважте, що це може не допомогти, якщо ви використовуєте збірку EAP, оскільки функція синхронізації Maven іноді може бути порушена.
Переконайтесь, що вибрано правильну залежність. Файл> Структура проекту
Виберіть проект та перейдіть на вкладку Залежності. Виберіть потрібну залежність у спадному меню або створіть нову.
Якщо всі попередні рішення не працювали для вас (що було в моєму випадку), ви можете видалити конфігураційні файли intellij:
Пізніше Intellij відновить нові. Однак будьте обережними, це також видалить усю конфігурацію Intellij, зроблену на проекті (тобто: конфігурація режиму налагодження, ...)