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 list
、project add
和 project remove
。
Project Catalog
项目目录:项目目录是一个共享一个主题的项目集合。
在使用 boot new
和 boot add
命令时,在将目录与 CLI 关联后,将可以立即获取这些项目。该目录是一个名为 project-catalog.yaml
的 YAML 文件。它包含一个项目存储库 URL 列表和一个关联的名称。目录托管在 GitHub 或 GitLab 上
与项目目录相关的命令包括 catalog list
、catalog add
和 catalog remove
User Defined Commands
命令:这些是通过声明定义的命令,允许你添加或修改代码和配置文件。
你还可以运行任意可执行文件,以执行开发工作流中通常发生的任何任意任务。用户定义的命令集成到 CLI 中,并且与内置命令看起来相同。
用户定义的命令具有三个部分:command name
、sub-command name
和 options
。命令名称和子命令名称通过使用目录结构约定来定义。
例如,要创建一个命令名称为 controller
和子命令名称为 new
的新用户定义命令,请设置以下目录结构:
.spring/commands/controller/new
在这个目录中,你可以创建一个名为 command.yaml
的文件,该文件定义了该命令的说明、选项和默认值。此目录(和子目录)包含动作文件,这些文件定义了在项目上执行的动作。
Roles
在你的 CLI 中,角色提供了一种方法来组织和在用户自定义命令中重用变量。
Spring CLI 包含了一个总是存在的默认未命名角色。此外,角色可以与特定名称相关联,以进一步区分其用途和用法。这些角色存储为与 .spring/commands
目录并列的 .spring/roles
目录中的 YAML 文件。
这些角色允许你定义可在操作文件中访问的变量,提供了一种在命令之间共享数据的方法。
你还可以使用角色为命令行选项提供值。如果命令行选项没有指定值,并且已经定义了与命令选项同名的角色变量,则命令会为该特定命令选项使用角色变量的值。
与项目相关的一些常见角色命令为 role add
、role remove
和 role set
。