使用 CLI

一旦您安装了 CLI,您可以通过在命令行输入 spring 并按 Enter 键来运行它。 如果您在不带任何参数的情况下运行 spring,将显示帮助屏幕,如下所示:

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

Available commands are:

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

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

  shell
    启动一个嵌套 shell

Common options:

  --debug Verbose mode
    为您运行的命令打印额外的状态信息


See 'spring help <command>' for more information on a specific 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                解压项目归档。如果指定了不带扩展名的位置,则自动推断

examples:

    列出服务的所有功能:
        $ 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.4.6

初始化一个新项目

init 命令允许您使用 start.spring.io 创建一个新项目,而无需离开 shell,如下例所示:

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

前述示例创建了一个 my-project 目录,其中包含一个基于 Maven 的项目,该项目使用了 spring-boot-starter-webspring-boot-starter-data-jpa。 您可以通过使用 --list 标志列出服务的功能,如下例所示:

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

Available dependencies:
-----------------------
actuator - Actuator: 生产就绪功能,帮助您监控和管理应用程序
...
web - Web: 支持全栈 web 开发,包括 Tomcat 和 spring-webmvc
websocket - Websocket: 支持 WebSocket 开发
ws - WS: 支持 Spring Web Services

Available project types:
------------------------
gradle-build -  Gradle 配置 [format:build, build:gradle]
gradle-project -  Gradle 项目 [format:project, build:gradle]
maven-build -  Maven POM [format:build, build:maven]
maven-project -  Maven 项目 [format:project, build:maven](默认值)

...

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.4.6)
Hit TAB to complete. Type \'help' and hit RETURN for help, and \'exit' to quit.

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

$ version
Spring CLI v3.4.6

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