アクションファイル

アクションファイルはユーザー定義コマンドを強化します。これらのファイルは YAML 形式で記述され、コマンドを定義するディレクトリに保存されます。

ユーザー定義コマンドのディレクトリ構造の詳細については、アクションファイルの構造のドキュメントを参照してください。

各ファイルには、ファイル内で定義されている順序で実行される一連のアクションが含まれています。アクションは、開発者が現在のプロジェクトにコードと構成を追加または変更するのに一般的に必要なタスクを実行します。アクションでは、別の実行可能アプリケーションを実行できます。これは、ベンダーの CLI アプリケーションを使用した デプロイなどの開発タスクの自動化に役立ちます。

ディレクトリ内には複数のアクションファイルが存在する可能性があり、それらはアルファベット順に評価されます。

評価の順序は、将来のリリースで変更される可能性があります。

現在、いくつかのアクションのみが存在しますが、さらに多くのアクションがプロトタイプであり、間もなく利用可能になる予定です。

アクションのリストは次のとおりです。

  • 生成する - 新規ファイルの作成。

  • 注入する - 既存のファイルの特定の場所にテキストを挿入します。

  • inject-maven-dependency - 現在の pom.xml ファイルに依存関係エントリを追加します。

  • インジェクト -maven- プラグイン - Maven プラグインエントリを現在の pom.xml ファイルに追加します

  • inject-maven-dependency-management - 現在の pom.xml ファイルに依存関係管理エントリを追加します。

  • インジェクト -maven- リポジトリ - 現在の pom.xml ファイルにリポジトリエントリを追加します

  • プロパティの挿入 - プロパティを Java プロパティファイルに追加します。

  • 実行する - 別のプログラムを実行します。

導入例

CLI command new コマンドは、アクションファイルのコンポーネントを示すために使用できる単純なユーザー定義コマンドを作成します。

spring command new --commandName hello --subCommandName create
Created user defined command /home/testing/rest-service/.spring/commands/hello/create

ディレクトリ構造は

$ tree .spring
.spring
└── commands
    └── hello
        └── create
            ├── command.yaml
            └── hello.yaml

以下に示す command.yaml の内容は、greeting という名前のコマンドライン引数を定義します。この引数は、hello.yaml アクションファイルで使用されます。

command:
  description: Generate a new file with a hello message
  options:
    #
    - name: greeting
      description: who or what to say hello to
      dataType: string
      defaultValue: World
      inputType: text     # TEXT
```

hello.yaml の内容は

actions:
  - generate:
      to: hello.txt
      text: Hello {{greeting}} on {{os-name}}.

アクションファイルを理解する

アクションファイルを作成するために YAML 構文がどのように使用されるかを理解できるように、このセクションでは、導入例の各行について説明します。

コード 説明。

アクション:

すべてのアクションをグループ化します。

生成する:

実行するアクションの型。例: このアクション型はファイルを生成します。

to:

ファイルシステム内のファイルを生成する場所。

テキスト:

生成するファイルの内容。

ユーザー定義コマンドの実行

$ spring hello create --greeting World!
Generated /home/testing/rest-service/hello.txt

$ cat hello.txt
Hello World! on Linux.

次のステップ