Spring Shell 2.1 发布,基于 Spring 的交互式 shell


Spring Shell 2.1.x 完全依赖于 Spring Boot 2.x,并不试图与旧的 Spring Shell 1.x 或 Spring Boot 1.x 保持任何向后兼容。

Spring Shell 2.1 发布,更新内容如下:

Command Registration

CommandRegistration 是一种定义命令的新编程方式。现有的命令注解模型可以转化为场景背后的这些注册。这个新的注册模型现在允许我们动态地控制命令,这在旧的 shell 实现中是不可能的。

现有注解

对于 @ShellMethod@ShellOption,我们试图保持它们的兼容性,未来的发展很可能会引入新的注解,与 CommandRegistration 更加一致。

主题化

现代终端的实现并不局限于显示一个简单的文本,而是允许不同类型的字体样式,并且可以使用颜色。在旧的 Spring Shell 中,这些大多是硬编码的,同时可以通过 JLine 使用 ANSI 序列将任何东西写进控制台。引入一个主题系统是有意义的,在这个系统中,所写的文本可以被样式化,这是创建漂亮的 shell UI 的基础。

https://user-images.githubusercontent.com/50398/180449734-4186d36a-462e-4798-b9db-444aa4c5cb7e.gif

https://user-images.githubusercontent.com/50398/180449857-2bcc06ac-1705-4934-8485-7f78bf7a6f76.gif

UI 组件

你很可能使用过各种 CLI 工具,这些工具不仅仅是向用户询问一些文本,然后在此基础上做一些事情。例如,GitHub CLI 就是一个很好的例子,它的一些命令会进入交互模式,并使用各种技巧要求用户输入,如选择器列表和其他类型的 shell

我们想在 Spring Shell 中完成的是创建这些组件,它们可以独立使用,也可以将这些组件组合成一个流程。

https://user-images.githubusercontent.com/50398/180447680-8fa40f23-9ce6-4cd2-87b2-22c8ee09256f.svg

Graal

在未来的 Spring Framework 版本中,一个重要的话题是用 GraalVM 进行本地编译。这显然对 CLI 有很大的影响,因为当你的现有代码被翻译成本地二进制时,那个小小的 jvm bootstrap 超时就会消失。

在 2.1.x 版本中,我们用实验性的 Spring Native 项目证明了可以创建一个在 Linux、macOS 和 Windows 中以同样方式工作的 Spring Shell 应用程序。

https://user-images.githubusercontent.com/50398/180446288-a1c3ed95-b20c-4cdb-924f-ab283c514e24.gif

https://user-images.githubusercontent.com/50398/180446731-9e08dc96-cfe1-4ca5-a978-2783c1cb4a52.gif

https://user-images.githubusercontent.com/50398/180483578-89f0da8d-2773-46b8-aef8-70d1176a7f49.png

Spring Shell 对 GraalVM 的正式支持将在 3.x 版本中推出。

模板化

现在 Spring Shell 的一些默认输出是基于 ANTRL 项目的 ST4 的模板。这使得用户可以替换 Spring Shell 中使用的模板并修改默认行为。这些模板也集成到了主题框架中,这样就有可能为每个活动主题定义模板。

修复

本 GA 包含一些显着的变化:

  • 基于 Spring Boot 2.7.2 构建
  • 一些样式变化
  • Help 命令现在知道别名
  • MultiItemSelector 组件现在可以默认选择项目
  • @ShellOption 的一些修复
  • 修复 using-shell-options-optional.adoc 中的拼写错误

更多详情可查看:https://github.com/spring-projects/spring-shell/releases/tag/v2.1.0

 


相關推薦

2022-08-21

Spring Shell 2.1.x 完全依赖于 Spring Boot 2.x,并不试图与旧的 Spring Shell 1.x 或 Spring Boot 1.x 保持任何向后兼容。 Spring Shell 2.1.1 现已发布,具体更新内容包括: Fixes 本 GA 包含一些显着的变化: 基于 Spring Boot 2.7.3 构建 向后移植

2022-12-06

Shell 2.1.4 和 3.0.0-M3 已发布。 Spring Shell 是基于 Spring 的交互式 Shell,可让开发者使用简单的基于 Spring 的编程模型来开发命令。 Spring Shell 3.0.0-M3 是建立在 Spring Boot 3.0.0 GA 版本之上的第一个里程碑。 Spring Shell 2.1.4 版本主

2023-01-16

2.1.5 和 3.0.0-RC1 已发布。 Spring Shell 是基于 Spring 的交互式 Shell,可让开发者使用简单的基于 Spring 的编程模型来开发命令。 Spring Shell 3.0.0-RC1 是 3.0 系列的首个 RC 预览版,它基于 Spring Boot 3.0.1 构建,要求使用 JDK 17 及

2023-01-26

ng Shell 2.1.6 和 3.0.0 已发布。 Spring Shell 是基于 Spring 的交互式 Shell,可让开发者使用简单的基于 Spring 的编程模型来开发命令。 Spring Shell 3.0.0 版本使用 Spring Boot 3.0.2 ,并包含一些显着更改: 更好地处理位置参数 更

2023-06-29

l 2.1.11、3.0.6 和 3.1.2 现已推出。Spring Shell 是基于 Spring 的交互式 Shell,可让开发者使用简单的基于 Spring 的编程模型来开发命令。 2.1.11 版本主要变化 Fixes 基于 spring-boot 2.7.13 构建 Issues #784 升级 spring-boot 2.7.13 3.0.6 

2023-03-03

2.1.7、3.0.1 和 3.1.0-M1 现已发布。Spring Shell 是基于 Spring 的交互式 Shell,可让开发者使用简单的基于 Spring 的编程模型来开发命令。 2.1.7 版本主要变化 基于 Spring Boot 2.7.9 构建 向后移植了一些错误修复 Issues #677 backport(6

2022-06-01

Spring Shell 2.1.0-M4 现已发布,感兴趣的用户可以从 https://repo.spring.io/milestone 获得。 该版本中一些值得注意的变化包括: 项目已更新为 Boot2.7.0 命令子系统已被重写 支持动态注册命令 执行目标现在也可以是Function

2023-02-18

Spring Cloud Data Flow 2.10.1 发布了。 Spring Cloud Data Flow 是构建数据集成和实时数据处理流水线的工具包  这是一个修复版本,主要带来如下内容: 库更新 Spring Boot 2.7.8 Spring Framework 5.3.25 Spring Shell 2.1.5 K

2023-06-22

<version>1.1.0</version> </dependency> smart-flow-spring-extension spring 扩展 <dependency> <groupId>org.smartboot.flow</groupId> <artifactId>smart-flow-spring-extension</artifactId> <version>1.1.0</version> </dependency>

2022-12-14

Spring Cloud Data Flow 2.10 发布了,Spring Cloud Data Flow 是构建数据集成和实时数据处理流水线的工具包。 主要更新内容 Spring 组件更新到以下版本 Spring Boot 2.7.6 Spring Framework 5.3.24 Spring Cloud 2021.0.5 Spring Shell 已更新至 2.1.4 文

2023-04-23

Spring Cloud 微服务使用数据库更方便:Bee + Spring Boot; 轻松支持多数据源,Sharding, Mongodb. 更快的开发 Spring Cloud 微服务的新组合,Bee 整合 Spring Boot, 让你瞬间拥有两样快速开发利器! Hibernate/MyBatis+ plus +Sharding JDBC + Jpa+ Spring dat

2022-09-30

Visual Studio for Mac 17.4 发布了第 2 个预览版。 下载地址:https://visualstudio.microsoft.com/vs/mac/preview/ 主要变化 可通过单击来重新启动调试 新版本增加了一个方便的功能,开发者只需点击一次按钮即可重新启动调试。如下图

2022-12-02

企业级微服务架构和服务能力开发平台。首个全面拥抱 Spring Authorization Server 的版本,基于Spring Authorization Server 0.4.0、Spring Boot 2.7.6、Spring Cloud 2021.0.5、Spring Cloud Alibaba 2021.0.4.0、Nacos 2.1.2 等最新版本开发的多租户系统,遵循SpringB

2022-10-20

写和远程代码执行。git shell 被教导要拒绝大小超过 4MiB 交互式命令。split_cmdline() 被强化y拒绝大于 2GiB 的输入。 更多详情可查看官方公告。