使用CLI

安装好 CLI 后,你可以在命令行输入 spring 并回车来运行它。 如果你不带参数运行 spring,会显示如下帮助界面:

$ spring
usage: spring [--help] [--version]
       <command> [<args>]

可用命令有:

  init [options] [location]
    使用 Spring Initializr (start.spring.io) 初始化新项目

  encodepassword [options] <password to encode>
    为 Spring Security 编码密码

  shell
    启动嵌套 shell

通用选项:

  --debug Verbose mode
    输出你正在运行命令的额外状态信息


查看某个具体命令的详细信息,请使用 'spring help <command>'。

你可以输入 spring help 获取任意支持命令的更多细节,例如:

$ spring help init
spring init - 使用 Spring Initializr (start.spring.io) 初始化新项目

usage: spring init [options] [location]

Option                       Description
------                       -----------
-a, --artifact-id <String>   项目坐标;推断归档名(如 'test')
-b, --boot-version <String>  Spring Boot 版本(如 '1.2.0.RELEASE')
--build <String>             构建系统(如 'maven' 或 'gradle')(默认:maven)
-d, --dependencies <String>  以逗号分隔的依赖标识符列表,包含在生成的项目中
--description <String>       项目描述
-f, --force                  强制覆盖已存在文件
--format <String>            生成内容的格式(如 'build' 表示构建文件,'project' 表示项目归档)(默认:project)
-g, --group-id <String>      项目坐标(如 'org.test')
-j, --java-version <String>  语言级别(如 '1.8')
-l, --language <String>      编程语言(如 'java')
--list                       列出服务的能力。用于发现可用的依赖和类型
-n, --name <String>          项目名称;推断应用名
-p, --packaging <String>     项目打包方式(如 'jar')
--package-name <String>      包名
-t, --type <String>          项目类型。通常无需指定,除非你使用 --build 和/或 --format。检查服务能力(--list)获取更多详情
--target <String>            要使用的服务 URL(默认:https://start.spring.io)
-v, --version <String>       项目版本(如 '0.0.1-SNAPSHOT')
-x, --extract                解压项目归档。如果指定了无扩展名的位置则自动推断

示例:

    列出服务所有能力:
        $ spring init --list

    创建默认项目:
        $ spring init

    创建 web my-app.zip:
        $ spring init -d=web my-app.zip

    创建 web/data-jpa gradle 项目并解包:
        $ spring init -d=web,jpa --build=gradle my-dir

version 命令可快速查看你正在使用的 Spring Boot 版本,如下:

$ spring version
Spring CLI v3.5.0

初始化新项目

init 命令允许你直接在 shell 中通过 start.spring.io 创建新项目,例如:

$ spring init --dependencies=web,data-jpa my-project
Using service at https://start.spring.io
Project extracted to '/Users/developer/example/my-project'

上述示例会创建一个包含 Maven 构建、依赖 spring-boot-starter-webspring-boot-starter-data-jpamy-project 目录。 你可以通过 --list 参数列出服务能力,例如:

$ spring init --list
=======================================
Capabilities of https://start.spring.io
=======================================

Available dependencies:
-----------------------
actuator - Actuator: Production ready features to help you monitor and manage your application
...
web - Web: Support for full-stack web development, including Tomcat and spring-webmvc
websocket - Websocket: Support for WebSocket development
ws - WS: Support for Spring Web Services

Available project types:
------------------------
gradle-build -  Gradle Config [format:build, build:gradle]
gradle-project -  Gradle Project [format:project, build:gradle]
maven-build -  Maven POM [format:build, build:maven]
maven-project -  Maven Project [format:project, build:maven] (default)

...

init 命令支持多种选项。 详见 help 输出获取更多细节。 例如,以下命令会创建一个使用 Java 17 和 war 打包的 Gradle 项目:

$ spring init --build=gradle --java-version=17 --dependencies=websocket --packaging=war sample-app.zip
Using service at https://start.spring.io
Content saved to 'sample-app.zip'

使用嵌入式 Shell

Spring Boot 提供了 BASH 和 zsh shell 的命令行补全脚本。 如果你不使用这些 shell(比如你是 Windows 用户),可以通过 shell 命令启动集成 shell,例如:

$ spring shell
Spring Boot (v3.5.0)
按 TAB 补全。输入 'help' 并回车获取帮助,输入 'exit' 退出。

在嵌入式 shell 内,你可以直接运行其他命令:

$ version
Spring CLI v3.5.0

嵌入式 shell 支持 ANSI 彩色输出和 tab 补全。 如需运行原生命令,可用 ! 前缀。 退出嵌入式 shell,请按 ctrl-c