動作檔案

動作檔案為使用者定義命令提供支援。這些檔案採用 YAML 格式編寫,儲存在定義命令的目錄中。

有關使用者定義命令的目錄結構的更多資訊,請參閱動作檔案結構文件。

每個檔案包含一系列動作,這些動作按照檔案中定義的順序執行。動作執行開發者通常需要的任務,以幫助向當前專案新增或修改程式碼和配置。動作可以執行另一個可執行應用程式,這有助於自動化開發任務,例如使用供應商的 CLI 應用程式進行部署。

一個目錄中可以有多個動作檔案,它們按字母順序評估。

評估順序可能在未來版本中改變。

目前,只有少數動作可用,但許多原型動作很快就會推出。

動作列表如下:

  • generate - 建立一個新檔案。

  • inject - 將文字注入現有檔案中的特定位置。

  • inject-maven-dependency - 將依賴項條目附加到當前的 pom.xml 檔案。

  • inject-maven-plugin - 將 Maven 外掛條目附加到當前的 pom.xml 檔案

  • inject-maven-dependency-management - 將依賴項管理條目附加到當前的 pom.xml 檔案。

  • inject-maven-repository - 將倉庫條目附加到當前的 pom.xml 檔案

  • inject-properties - 將屬性附加到 Java 屬性檔案。

  • exec - 執行另一個程式。

入門示例

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 語法建立動作檔案,本節解釋了入門示例中的每一行。

程式碼 說明。

actions

將所有動作分組。

generate

要執行的動作型別。例如,這種動作型別用於生成檔案。

to

在檔案系統中生成檔案的位置。

text

要生成的檔案內容。

執行使用者定義命令

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

$ cat hello.txt
Hello World! on Linux.

後續步驟