文 | 罗奇奇

IntelliJ IDEA 2022.1 正式发布了,该版本的重点功能是:引入了 Dependency Analyzer 以促进依赖关系管理和冲突解决,一个更新的 New Project 向导来优化新项目的启动过程,以及 Notifications 通知工具窗口,它提供了一种新的、简化的方式来接收来自 IDE 的通知。2022.1 版本还包括许多其他值得注意的改进,下面摘录部分新功能作介绍。

关键更新

  • 依赖分析器 (Dependency Analyzer)

为了促进依赖管理和冲突解决,IntelliJ IDEA 实现了依赖分析器,它提供项目和子项目中使用的所有依赖项(包括传递性依赖项)的广泛信息。

这个新功能允许轻松检测冲突的依赖关系并解决问题,比如可以过滤掉相同的依赖项,并查看它们在不同库中的存在,还可以快速浏览依赖项,以正确构建配置。 

功能强大!IntelliJ IDEA 2022.1正式发布_spring

  • 增强的 新项目 向导

重新设计了新项目 向导界面,以简化创建新项目的过程。可以快速启动一个空项目;使用 Java、Kotlin、Groovy 和 JavaScript 的预配置选项;或者有更复杂的项目,请使用生成器。

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_02

  • 新的通知 工具窗口

事件日志实例已替换为新的 通知 工具窗口,更清楚地突出重要和有用的建议和通知,并将它们组织在专用工具窗口中。

有关更多详细信息,请参阅博客文章:https://blog.jetbrains.com/idea/2022/01/intellij-idea-2022-1-eap-1/#New_Notifications_tool_window

功能强大!IntelliJ IDEA 2022.1正式发布_spring_03

用户体验

  • 新建项目向导中的 Maven Archetype 优化

作为新建项目向导的 UI 改造的一部分,IntelliJ IDEA 重新设计了 Maven Archetype 项目生成器,2022.1 版本在浏览原型时引入了“键入时搜索”功能,以及在模块创建期间管理原型目录的能力。

功能强大!IntelliJ IDEA 2022.1正式发布_数据库_04

此外,还可以按原型输入所需的属性:

功能强大!IntelliJ IDEA 2022.1正式发布_python_05

  • 均匀拆分选项卡

IntelliJ IDEA 2022.1 可以在编辑器选项卡之间平均分配工作空间,使它们具有相同的宽度。

功能强大!IntelliJ IDEA 2022.1正式发布_python_06

  • 将 UML 图导出为其他格式

现在可以将 UML 图导出为 yEd .graphml、JGraph .drawio、Graphviz .dot、带位置的 Graphviz .dot、Mermaid .md、Plantuml 和 IntelliJ IDEA .uml 文件,使得它们与第三方工具兼容。

功能强大!IntelliJ IDEA 2022.1正式发布_java_07

  • 更新了 结构搜索和替换 对话框

重新设计了结构搜索和替换对话框,提供所有模板的列表,以便更轻松地在它们之间导航。 

功能强大!IntelliJ IDEA 2022.1正式发布_数据库_08

安全

  • 包检查器插件

ntelliJ IDEA 2022.1 现在可以通过检查 Checkmarx SCA 数据库和国家漏洞数据库,来检测项目中使用的 Maven 和 Gradle 依赖项中的漏洞。

功能强大!IntelliJ IDEA 2022.1正式发布_spring_09

Java 支持

  • 支持 Java 18

IntelliJ IDEA 2022.1 支持 2022 年 3 月发布的 Java 18 的新功能。IDE 现在支持代码片段、开关表达式的模式匹配更改等功能。

有关详细信息,请参阅此博客文章:https://blog.jetbrains.com/idea/2022/03/java-18-features-support/?_gl=1*6wf1f9*_ga*MjA4MTU3MzE1OC4xNjM0ODU3MzQ1*_ga_V0XZL7QHEB*MTY0OTgwNTQ3NS40LjEuMTY0OTgwNjMwMy4yMw..&_ga=2.58852333.1145425053.1649805475-2081573158.1634857345

功能强大!IntelliJ IDEA 2022.1正式发布_数据库_10

  • Java反编译器

Java 反编译器现在与 Java 17 版本更兼容。它支持现代语言构造函数,例如密封类型和模式匹配,具有更好的字符串反编译切换功能,提供类型注释并检测公共常量。

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_11

  • 更好的 JUnit 5 支持

添加了对 JUnit 5.7 中引入的新功能的支持,包括对​​@EnabledIf/DisabledIf​​​、​​@NullSource/EmptySource​​​和​​@TempDir​​注释的支持。

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_12

使用 try/catch 模板更新 Surround

更新后的带有 try/catch模板的 Surround 现在重新抛出包装到 RuntimeException 中的异常,而不是吞下它。

功能强大!IntelliJ IDEA 2022.1正式发布_python_13

Kotlin 支持

IntelliJ IDEA 2022.1 支持 Kotlin 1.6.20,因此最新的 Kotlin 语言功能,例如支持并行编译、上下文接收器原型以及跨所有 Kotlin 目标的更好的代码共享,现在都可以在 IDE 中使用。

在此博客文章中了解有关新 Kotlin 更新的更多 信息:https://blog.jetbrains.com/kotlin/2022/04/kotlin-1-6-20-released/

  • 改进了 Kotlin 的 IDE 性能

优化了包索引,大大提高了 IDE 在执行代码完成、突出显示和与参考搜索等相关操作时的速度,在代码更改后发生的重新索引案例的数量和范围也有所减少。

框架和技术

Go 微服务支持

  • 添加了对 Go 微服务的支持,提供 URL 路径引用、端点、Search Everywhere 和装订线图标等功能。使用这些功能需要在 IntelliJ IDEA Ultimate 中安装 Go 插件,目前仅适用于标准库函数。
  • IntelliJ IDEA Ultimate 现在为 Go 文件中的 HTTP 方法和标头提供补全,每个端点旁边都会出现一个地球图标,如果单击它,IntelliJ IDEA Ultimate 将建议几个选项。

功能强大!IntelliJ IDEA 2022.1正式发布_spring_14

Spring Data Mongo 的代码洞察改进

引入了许多更新来改善使用 Spring Data MongoDB 的用户体验。IntelliJ IDEA 现在突出显示 JSON 查询,完成运算符和文档字段,并提供从映射实体到 数据库 工具窗口的导航。

功能强大!IntelliJ IDEA 2022.1正式发布_数据库_15

功能强大!IntelliJ IDEA 2022.1正式发布_python_16

更好地支持 .proto 文件

为 .proto 文件引入了一个新的意图操作:为未解析的消息引用添加了缺失的导入语句,添加缺少的导入语句后, IDE 将提供消息引用的补全建议。

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_17

gRPC 反射支持

  • 当项目中存在描述 gRPC 服务的 .proto 文件时,IntelliJ IDEA Ultimate 现在为服务名称、方法名称和请求正文选项提供代码补全。更重要的是,现在可以通过装订线图标运行请求。
  • 如果项目没有 .proto 文件,但服务器支持 gRPC 反射,你将能够运行请求,并完成服务器运行实例的服务和方法名称。

Kubernetes 支持

Kubernetes

编辑集群上的资源

现在可以从编辑器选项卡中修改从集群加载的资源。

功能强大!IntelliJ IDEA 2022.1正式发布_java_18

kubectl 的自定义路径

如果 kubectl 不在标准位置,现在可以手动配置路径。

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_19

转发端口

该版本为 pod 添加了端口转发功能。要转发端口,可以使用工具栏上的图标或选择上下文菜单项。

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_20

服务视图中的描述资源操作

“服务”视图中的所有资源都有一个新的“描述资源”操作,可以从上下文菜单中调用它或使用工具栏按钮。

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_21

支持集群中的事件

集群事件现在显示在 服务 视图的单独节点中,提供有关系统中最近事件的数据。

功能强大!IntelliJ IDEA 2022.1正式发布_python_22

要查看特定 pod 的事件,请在其上面调用 Describe Resource 并在操作结果中 查找 Events 部分

功能强大!IntelliJ IDEA 2022.1正式发布_数据库_23

支持

为 werf.yaml 和相关 Helm 模板文件 ( https://werf.io ) 引入了有限的编辑器支持,包括代码补全功能、检查和快速修复建议、重构/重命名 . Values.werf.image.*,以及一些字段的验证,如 boolean 和 int。  

功能强大!IntelliJ IDEA 2022.1正式发布_mysql_24

功能强大!IntelliJ IDEA 2022.1正式发布_python_25

对 Helm 的导入子值支持

支持通过 import-values 设置导入子值,这些设置影响模板中内置对象的完成/导航。尚未提供对 import-values 字段的增强编辑器支持。

功能强大!IntelliJ IDEA 2022.1正式发布_java_26

请注意,Kubernetes 功能仅适用于 IntelliJ IDEA Ultimate,并且需要安装插件。

构建工具

  • 更新 Gradle 的进度条

为 Gradle 进程实现了一个确定的进度条,例如下载依赖项和导入工件,允许跟踪文件发生的情况并估计该过程何时完成。

功能强大!IntelliJ IDEA 2022.1正式发布_java_27

此版本还包含大量更新项,详情可在更新公告中细阅:https://www.jetbrains.com/idea/whatsnew/#web-development