Функция предварительного просмотра «Записи» в IntelliJ 2020.1 с Java 14 завершается с ошибкой компилятора во время Maven `install`, но работает иначе - PullRequest
1 голос
/ 28 апреля 2020

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

Я определил класс следующим образом:

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, чтобы использовать все последние версии его различных зависимостей.


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

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

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

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

У меня есть "Настройки "settings:

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

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

Использование:

IntelliJ IDEA 2020.1.1 (Ultimate Edition)

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

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

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

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

G C: ParNew, ConcurrentMarkSweep

Память: 2200M

Ядра: 6

Неупакованные плагины: com.github.leomillon.uuidgenerator

1 Ответ

1 голос
/ 28 апреля 2020

Похоже, что это проблема или ошибка fre sh, возникшая вокруг IntelliJ 2020.1.1 R C build # 201. Такое же поведение в финальной версии 2020.1.1.

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

Обходной путь: Добавить <configuration> elements

Для успешного завершения 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>
...