关键概念

Spring CLI 依赖于贯穿整个项目的几个关键概念

项目

项目: 在 GitHub 或 GitLab 上托管的“普通 Java 项目”。项目在 CLI 中注册,以便可以使用简单的名称来引用它们。

例如,如果在 CLI 中注册一个使用 Spring Data JPA 的 GitHub 项目 URL,并将其命名为“jpa”,则可以使用命令 boot new my-jpa-app jpa 从该项目创建一个新项目。类似地,您可以通过调用 boot add jpa 命令向现有项目添加 JPA 功能。

与项目相关的命令包括 project listproject addproject remove

项目目录

项目目录: 项目目录是共享共同主题的项目集合。

在 CLI 中注册目录后,在使用 boot newboot add 命令时,项目就可以随时使用了。目录是一个名为 project-catalog.yaml 的 YAML 文件。它包含项目仓库 URL 列表和相关的名称。该目录托管在 GitHub 或 GitLab 上。

与项目目录相关的命令包括 catalog listcatalog addcatalog remove

用户自定义命令

命令: 这些是声明性定义的命令,允许您添加或修改代码和配置文件。

您还可以运行任意可执行文件来执行开发工作流程中常见的任何任务。用户自定义命令集成到 CLI 中,并与内置命令具有相同的外观。

用户自定义命令包含三个部分:命令名称子命令名称选项。命令名称和子命令名称通过目录结构约定来定义。

例如,要创建一个命令名称为 controller、子命令名称为 new 的新用户自定义命令,请创建以下目录结构:

.spring/commands/controller/new

在此目录中,可以有一个名为 command.yaml 的文件,用于定义命令的描述、选项和默认值。此目录(以及子目录)包含定义对项目执行的操作的操作文件。

操作文件

操作文件: 这些文件定义了可以对项目执行的操作。

角色

在您的 CLI 中,角色提供了一种在用户自定义命令之间组织和重用变量的方式。

Spring CLI 包含一个始终存在的默认匿名角色。此外,角色可以与特定名称关联,以进一步区分其用途和用法。这些角色以 YAML 文件形式存储在 .spring/roles 目录中,该目录与 .spring/commands 目录位于同一级别。

这些角色允许您定义在操作文件中可访问的变量,从而提供一种在命令之间共享数据的方式。

您还可以使用角色为命令行选项提供值。如果某个命令行选项没有指定值,并且存在一个与该命令选项同名的角色变量,则该命令将使用该角色变量的值作为该特定命令选项的值。

一些与项目相关的常见角色命令包括 role addrole removerole set