Функция предварительного просмотра "Записи" в IntelliJ 2020.1 с Java 14 завершается с ошибкой компилятора во время установки Maven, но в противном случае выполняется

Я пытаюсь использовать функцию JEP 359: Records (Preview) в Java с IntelliJ 2020.1.1 RC.

Я определил такой класс:

package work.basil.example;

import java.time.LocalTime;

public record LocalTimeRange(LocalTime start , LocalTime stop)
{
}

Когда я запускаю основной метод в другом классе, используя этот LocalTimeRange класс, без проблем.

Когда я делаю Maven install Я получаю такую ​​ошибку:

Ошибка:(6,8) java: записи являются функцией предварительного просмотра и по умолчанию отключены.

➥ Как я могу помочь Maven завершить install операция?

Я использовал Maven Quickstart Archetype версии 1.4. Затем я отредактировал POM, чтобы использовать все последние версии его различных зависимостей.


У меня есть настройки "Структура проекта":

Настройки проекта> Проект> SDK проекта> 14

Настройки проекта> Проект> Уровень языка проекта> 14 (предварительная версия) - Записи, шаблоны, текстовые блоки

Настройки проекта> Модули> Уровень языка проекта> 14 (предварительная версия) - Записи, шаблоны, текстовые блоки

У меня есть настройки "Предпочтения":

Сборка, выполнение, развертывание> Компилятор> Компилятор Java> Версия байт-кода для каждого модуля> Целевая версия байт-кода> 14

Запуск этой Java:openjdk 14.0.1 2020-04-14 Среда выполнения OpenJDK AdoptOpenJDK (сборка 14.0.1+7) 64-разрядная серверная виртуальная машина OpenJDK AdoptOpenJDK (сборка 14.0.1+7, смешанный режим, совместное использование)

С помощью:

IntelliJ IDEA 2020.1.1 (Максимальная версия)

Сборка № IU-201.7223.58, построена 26 апреля 2020 г.

Подписка активна до 28 августа 2020 г.

Версия выполнения: 11.0.6+8-b765.40 x86_64

ВМ: 64-разрядная серверная виртуальная машина OpenJDK от JetBrains sro macOS 10.14.6

GC: ParNew, ConcurrentMarkSweep

Память: 2200 МБ

Ядра: 6

Не связанные плагины: com.github.leomillon.uuidgenerator

1 ответ

Решение

Похоже, это новая проблема или ошибка, возникшая в IntelliJ 2020.1.1 RC, сборка № 201. Такое же поведение в финальной версии 2020.1.1.

См. Билет № IDEA-237538, IntelliJ Build № IU-201.6668.121 больше не распознает записи Java 14

Решение: добавить <configuration> элементы

Чтобы сделать свой Maven clean & install завершено успешно, добавить <configuration> элементы к двум вашим элементам POM, чтобы отметить --enable-preview.

Измените это:

            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.8.1</version>
            </plugin>

            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>3.0.0-M4</version>
            </plugin>

â € на это:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <release>14</release>
                    <compilerArgs>
                        <arg>--enable-preview</arg>
                    </compilerArgs>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M4</version>
                <configuration>
                    <argLine>--enable-preview</argLine>
                </configuration>
            </plugin>
Другие вопросы по тегам