java - 带有 Java 14 的 IntelliJ 2020.1 中的“记录”预览功能在 Maven“安装”期间因编译器错误而失败,但以其他方式运行
问题描述
我正在尝试将JEP 359: Java 中的记录(预览)功能与IntelliJ 2020.1.1 RC 一起使用。
我定义了一个这样的类:
package work.basil.example;
import java.time.LocalTime;
public record LocalTimeRange(LocalTime start , LocalTime stop)
{
}
当我使用这个类在另一个类中运行 main 方法时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 Runtime Environment AdoptOpenJDK (build 14.0.1+7) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 14.0.1+7,混合模式,共享)
使用:
IntelliJ IDEA 2020.1.1(终极版)
构建 #IU-201.7223.58,建于 2020 年 4 月 26 日
订阅有效期至 2020 年 8 月 28 日
运行时版本:11.0.6+8-b765.40 x86_64
虚拟机:JetBrains sro macOS 10.14.6 的 OpenJDK 64 位服务器虚拟机
GC:ParNew、ConcurrentMarkSweep
内存:2200M
核心:6
非捆绑插件:com.github.leomillon.uuidgenerator
解决方案
这似乎是 IntelliJ 2020.1.1 RC build # 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>
推荐阅读
- python - SSL:CERTIFICATE_VERIFY_FAILED 证书验证失败:自签名证书 (_ssl.c:1076) Python ssl 和套接字
- php - 多对多自引用如何正确加入
- java - 如何根据元素将一串重复元素和不同值的部分排序到不同的数组中?
- gulp - Nunjucks 模板刷新
- python - 作为二阶部分的传递函数
- c - 我无法使用 time(NULL) 函数检查数组排序的时间
- python - 最近 n_days 使用 groupby 在特定列上的累积总和
- c++ - std::ranges::begin 和 std::begin 有什么区别?
- r - 带引号列的数据表子集缺乏矢量化
- r - 使用测试数据进行统计测试