Spring Boot CLI是一个命令行工具,您可以使用它从start.spring.io启动一个新项目或对密码进行编码。

1. 安装CLI

Spring Boot CLI(命令行界面)可以通过手动使用SDKMAN!(SDK管理器)安装,或者如果您是OSX用户,可以使用Homebrew或MacPorts进行安装。有关全面的安装说明,请参见“入门”部分中的getting-started.html

2. 使用CLI

安装完CLI后,您可以在命令行中键入spring并按Enter键运行。如果您运行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 详细模式
    为您运行的命令打印额外的状态信息


有关特定命令的更多信息,请参阅'spring help <command>'。

您可以键入spring help以获取有关任何受支持命令的更多详细信息,如下例所示:

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

usage: spring init [options] [location]

选项                       描述
------                       -----------
-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.2.3

2.1. 初始化新项目

init命令允许您在不离开shell的情况下使用start.spring.io创建新项目,如下例所示:

$ spring init --dependencies=web,data-jpa my-project
使用https://start.spring.io的服务
项目提取到'/Users/developer/example/my-project'

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

$ spring init --list
=======================================
https://start.spring.io的功能
=======================================

可用依赖项:
-----------------------
actuator - Actuator: 用于帮助监视和管理应用程序的生产就绪功能
...
web - Web: 支持全栈Web开发,包括Tomcat和spring-webmvc
websocket - Websocket: 支持WebSocket开发
ws - WS: 支持Spring Web Services

可用项目类型:
------------------------
gradle-build -  Gradle配置[格式:构建, 构建:gradle]
gradle-project -  Gradle项目[格式:项目, 构建:gradle]
maven-build -  Maven POM[格式:构建, 构建:maven]
maven-project -  Maven项目[格式:项目, 构建:maven](默认)

...

init命令支持许多选项。有关更多详细信息,请参阅help输出。例如,以下命令创建一个使用Java 17和war打包的Gradle项目:

$ spring init --build=gradle --java-version=17 --dependencies=websocket --packaging=war sample-app.zip
使用https://start.spring.io的服务
内容保存到'sample-app.zip'

2.2. 使用嵌入式Shell

Spring Boot包含用于BASH和zsh shell的命令行完成脚本。如果您不使用这两个shell(也许您是Windows用户),您可以使用shell命令启动集成的shell,如下例所示:

$ spring shell
Spring Boot(v3.2.3)
按TAB键进行完成。键入'help'并按回车键获取帮助,键入'exit'退出。

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

$ version
Spring CLI v3.2.3

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