主なコンセプト
Spring CLI は、プロジェクト全体に現れるいくつかの重要な概念に依存しています。
プロジェクト
プロジェクト : GitHub または GitLab でホストされる「プレーンな古い Java プロジェクト」。プロジェクトは CLI に登録されるため、単純な名前でプロジェクトを参照できます。
例: Spring Data JPA を使用するプロジェクトの GitHub URL を "jpa" という名前で登録すると、boot new my-jpa-app jpa コマンドを呼び出すことで、そのプロジェクトから新しいプロジェクトを作成できます。同様に、boot add jpa コマンドを呼び出して、既存のプロジェクトに JPA 機能を追加できます。
プロジェクトに関連するコマンドは project list、project add、project remove です。
プロジェクトカタログ
プロジェクトカタログ : プロジェクトカタログは、共通のテーマを共有するプロジェクトのコレクションです。
CLI でカタログを登録すると、boot new および boot add コマンドを使用してプロジェクトをすぐに使用できるようになります。カタログは、project-catalog.yaml という名前の YAML ファイルです。これには、プロジェクトリポジトリ URL と関連する名前のリストが含まれます。カタログは GitHub または GitLab でホストされています
プロジェクトカタログに関連するコマンドは catalog list、catalog add、catalog remove です
ユーザー定義コマンド
コマンド : これらは宣言的に定義されたコマンドであり、コードや構成ファイルを追加または変更できます。
任意の実行可能ファイルを実行して、開発ワークフローで一般的に発生する任意のタスクを実行することもできます。ユーザー定義コマンドは CLI に統合されており、組み込みコマンドと同じように表示されます。
ユーザー定義コマンドには、command name、sub-command name、options の 3 つの部分があります。コマンド名およびサブコマンド名は、ディレクトリ構造の規則に従って定義されます。
例: コマンド名 controller、サブコマンド名 new の新しいユーザー定義コマンドを作成するには、次のディレクトリ構造を作成します。
.spring/commands/controller/new このディレクトリには、コマンドの説明、オプション、デフォルト値を定義する command.yaml という名前のファイルを 1 つ作成できます。このディレクトリ (およびサブディレクトリ) には、プロジェクトに対して実行するアクションを定義するアクションファイルが含まれています。
ロール
CLI では、ロールにより、ユーザー定義コマンド全体で変数を整理して再利用する方法が提供されます。
Spring CLI には、常に存在するデフォルトの名前のないロールが含まれています。また、ロールを特定の名前に関連付けて、その目的と使用箇所をさらに区別することもできます。これらのロールは、.spring/commands ディレクトリの隣にある .spring/roles ディレクトリ内に YAML ファイルとして保存されます。
これらのロールを使用すると、アクションファイル内でアクセス可能な変数を定義でき、コマンド間でデータを共有する方法が提供されます。
ロールを使用してコマンドラインオプションの値を指定することもできます。コマンドラインオプションに値が指定されておらず、ロール変数がコマンドオプションと同じ名前で定義されている場合、コマンドはその特定のコマンドオプションのロール変数の値を使用します。
プロジェクトに関連する一般的なロールコマンドには role add、role remove、role set があります