本文为官方文档直译版本。原文链接
Spring Boot CLI 是一种命令行工具,可用于从 start.spring.io 引导新项目或编码密码。
Spring Boot CLI(命令行界面)可通过使用 SDKMAN!(SDK 管理器)或使用 Homebrew 或 MacPorts(如果您是 OSX 用户)手动安装。有关全面的安装说明,请参见 “入门” 部分中的 getting-started.html。
安装 CLI 后,在命令行输入 spring
并按 Enter 即可运行。如果不带任何参数运行 spring
,会显示如下帮助屏幕:
$ spring
usage: spring [--help] [--version]
<command> [<args>]
Available commands are:
可用命令包括:
init [options] [location]
Initialize a new project using Spring Initializr (start.spring.io)
使用 Spring Initializr(start.spring.io)初始化新项目
encodepassword [options] <password to encode>
Encode a password for use with Spring Security
为密码编码,以便与 Spring Security 一起使用
shell
Start a nested shell
启动嵌套 shell
Common options:
--debug Verbose mode
Print additional status information for the command you are running
打印正在运行的命令的其他状态信息
See 'spring help <command>' for more information on a specific command.
有关特定命令的更多信息,请参阅 "spring help <command>"。
如下面的示例所示,您可以输入 spring help
获取任何支持命令的详细信息:
$ spring help init
spring init - Initialize a new project using Spring Initializr (start.spring.io)
使用 Spring Initializr(start.spring.io)初始化新项目
usage: spring init [options] [location]
Option Description
------ -----------
-a, --artifact-id <String> Project coordinates; infer archive name (for
example 'test')
项目坐标;推断档案名称(例如例如 "测试")
-b, --boot-version <String> Spring Boot version (for example '1.2.0.RELEASE')
Spring Boot 版本(例如 "1.2.0.RELEASE")。
--build <String> Build system to use (for example 'maven' or 'gradle')
(default: maven)
要使用的构建系统(例如"maven"或"gradle")(默认:maven)
-d, --dependencies <String> Comma-separated list of dependency identifiers to
include in the generated project
以逗号分隔的依赖项标识符列表。包含在生成的项目中
--description <String> Project description
项目描述
-f, --force Force overwrite of existing files
强制覆盖已有文件
--format <String> Format of the generated content (for example
'build' for a build file, 'project' for a
project archive) (default: project)
生成内容的格式
(例如'build'表示构建文件,'project'表示项目存档)
(默认:项目)
-g, --group-id <String> Project coordinates (for example 'org.test')
项目坐标(例如 "org.test")
-j, --java-version <String> Language level (for example '1.8')
语言级别(例如 "1.8")
-l, --language <String> Programming language (for example 'java')
编程语言(例如 "java")
--list List the capabilities of the service. Use it to
discover the dependencies and the types that are
available
列出服务的功能。用它来发现依赖关系和可用类型可用类型
-n, --name <String> Project name; infer application name
项目名称;推断应用名称
-p, --packaging <String> Project packaging (for example 'jar')
项目打包(例如 "jar")
--package-name <String> Package name
包名称
-t, --type <String> Project type. Not normally needed if you use --
build and/or --format. Check the capabilities of
the service (--list) for more details
项目类型。如果使用 --build 和/或 --format
查看服务的功能(--list)以了解更多详情
--target <String> URL of the service to use (default: https://start.
spring.io)
要使用的服务的 URL(默认值:https://start.spring.io)
-v, --version <String> Project version (for example '0.0.1-SNAPSHOT')
项目版本(例如 "0.0.1-SNAPSHOT")
-x, --extract Extract the project archive. Inferred if a
location is specified without an extension
提取项目存档。如果指定的指定的位置没有扩展名
examples:
To list all the capabilities of the service:
列出服务的全部功能:
$ spring init --list
To creates a default project:
创建默认项目:
$ spring init
To create a web my-app.zip:
创建web my-app.zip:
$ spring init -d=web my-app.zip
To create a web/data-jpa gradle project unpacked:
创建已解压的 web/data-jpa gradle 项目:
$ spring init -d=web,jpa --build=gradle my-dir
version
命令提供了一种快速方法来检查你正在使用的 Spring Boot 版本,如下所示:
$ spring version
Spring CLI v3.2.1
如下面的示例所示,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'
上例创建了一个 my-project
目录,其中包含一个基于 Maven 的项目,该项目使用了 spring-boot-starter-web
和 spring-boot-starter-data-jpa
。你可以使用 --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'
Spring Boot 包含 BASH 和 zsh shell 的命令行完成脚本。如果您不使用这两种 shell(也许您是 Windows 用户),则可以使用 shell
命令启动集成 shell,如下例所示:
$ spring shell
Spring Boot (v3.2.1)
Hit TAB to complete. Type \'help' and hit RETURN for help, and \'exit' to quit.
在嵌入式 shell 中,你可以直接运行其他命令:
$ version
Spring CLI v3.2.1
嵌入式 shell 支持 ANSI 颜色输出和tab
补全。如果需要运行本地命令,可以使用 !
前缀。要退出嵌入式 shell,请按 ctrl-c
。