Key Concepts

Spring CLI 依赖于许多关键概念,这些概念出现在整个项目中:

Project

项目:一个托管在 GitHub 或 GitLab 中的“普通旧 Java 项目”。项目与 CLI 绑定在一起,以便一个简单的名称可以引用它们。

例如,如果你使用名称“jpa”注册一个使用 Spring Data JPA 的项目的 GitHub URL,则可以通过调用命令 boot new my-jpa-app jpa 从该项目创建一个新项目。同样,你可以通过调用 boot add jpa 命令,将 JPA 功能添加到现有项目中。

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

Project Catalog

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

在使用 boot newboot add 命令时,在将目录与 CLI 关联后,将可以立即获取这些项目。该目录是一个名为 project-catalog.yaml 的 YAML 文件。它包含一个项目存储库 URL 列表和一个关联的名称。目录托管在 GitHub 或 GitLab 上

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

User Defined Commands

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

你还可以运行任意可执行文件,以执行开发工作流中通常发生的任何任意任务。用户定义的命令集成到 CLI 中,并且与内置命令看起来相同。

用户定义的命令具有三个部分:command namesub-command nameoptions。命令名称和子命令名称通过使用目录结构约定来定义。

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

.spring/commands/controller/new

在这个目录中,你可以创建一个名为 command.yaml 的文件,该文件定义了该命令的说明、选项和默认值。此目录(和子目录)包含动作文件,这些文件定义了在项目上执行的动作。

Action Files

Action Files: 它们定义了可以在项目上执行的操作。

Roles

在你的 CLI 中,角色提供了一种方法来组织和在用户自定义命令中重用变量。

Spring CLI 包含了一个总是存在的默认未命名角色。此外,角色可以与特定名称相关联,以进一步区分其用途和用法。这些角色存储为与 .spring/commands 目录并列的 .spring/roles 目录中的 YAML 文件。

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

你还可以使用角色为命令行选项提供值。如果命令行选项没有指定值,并且已经定义了与命令选项同名的角色变量,则命令会为该特定命令选项使用角色变量的值。

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