操作文件

操作文件支持用户自定义命令。这些文件使用 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.

后续步骤