Spring Boot CLI你知多少?- 第394篇
Spring Boot CLI (Command Line Interface)是一个命令行工具,可以快速搭建spring原型项目。可以使用Groovy脚本,脚本比较和java语法类似,非常简洁。
一、可以用来干吗?
(1)构建Spring Boot项目:可以理解为https://start.spring.io/在线构建的本地化构建方式,构建命令:spring init。
(2)编译和运行Spring Boot项目,命令spring run,参数是启动类(.java)格式,执行此命令就会进行编译和运行项目。
(3)打包,命令spring jar/war,将java程序打成jar/war。
二、如何使用
2.1 下载安装
访问网址:
https://repo.spring.io/ui/native/release/org/springframework/boot/spring-boot-cli
找到相应的版本,目前这里最新的版本是2.5.5的版本,获取到下载地址:
https://repo.spring.io/ui/native/release/org/springframework/boot/spring-boot-cli/2.5.5/spring-boot-cli-2.5.5-bin.zip
解压后,有bin文件夹,spring.bat就是windows环境使用的,没有后缀名的spring就是linux使用的,还有就是mac os。
2.2 验证环境
在mac os下执行:
$ sh spring --version
执行成功的话可以看到CLI的版本号,如果有异常的话,请根据提示进行解决。
提示:Spring Boot CLI requires Java JDK v1.8 or above in order to run. Groovy v2.4.15
2.3 帮助命令spring help
$ sh spring help
通过spring help我们看到常用的一些指令:
(1)run命令:用于运行Java Springboot应用程序
语法:$ spring run [options] <files> [--] [args]
(2)jar命令:Java程序打成jar包
语法:spring jar [options] <jar-name> <files>
(3)war命令:将java文件打成war包,用法和jar类似,打包后文件也可以通过java命令执行。
语法:spring war [options] <war-name> <files>
(4)init命令:使用spring Initializr(http://start.spring.io/)初始化一个新项目
语法:spring init [options] [location]
(5)Shell命令行:启动内置命令行
语法:spring shell
2.4 构建命令spring init
2.4.1 spring init
$ sh spring init
在和Initializr的Web应用程序通信后,init命令会下载一个demo.zip文件。解压后你会看到一个典型的项目结构,包含一个Maven的pom.xml构建描述文件。Maven的构建说明只包含最基本的内容,即只有Spring Boot基线和测试起步依赖。你可能会想要更多的东西。
我们解压demo.zip可以看到目录结构和web在线构建的项目结构是一样的。
2.4.2 spring init -d
假设你想要构建一个Web应用程序,其中使用JPA实现数据持久化,使用Spring Security进行安全加固,可以用-- dependencies或-d来指定那些初始依赖:
$ sh spring init -dweb,jpa,security
这条命令会下载一个demo.zip文件,包含与之前一样的项目结构,但在pom.xml里增加了Spring Boot的Web、jpa和security起步依赖。请注意,在-d和依赖之间不能加空格,否则就变成了下载一个ZIP文件,文件名是web,jpa,security。
查看pom.xml文件,是否多了一些和security已经jpa相关的依赖了:
2.4.3 spring init -d --build
现在,假设你想用Gradle来构建项目。没问题,用--build参数将Gradle指定为构建类型:
$sh spring init -dweb,jpa,security --build gradle
2.4.4 spring init -d –build -p
默认情况下,无论是Maven还是Gradle的构建说明都会产生一个可执行JAR文件。但如果你想要一个WAR文件,那么可以通过--packaging或者-p参数进行说明:
$sh spring init -dweb,jpa,security --build gradle -p war
2.4.5 spring init -d –build -p指定解压目录
到目前为止,init命令只用来下载ZIP文件。如果你想让CLI帮你解压那个ZIP文件,可以指定一个用于解压的目录:
$sh spring init -dweb,jpa,security --build gradle -p war myapp
此处的最后一个参数说明你希望把项目解压到myapp目录里去。
此外,如果你希望CLI把生成的项目解压到当前目录,可以使用--extract或者-x参数:
$ sh spring init -dweb,jpa,security --build gradle -p jar -x
这样的方式并不会自动创建一个目录,而是把代码放到当前的目录,和当前目录下的原有文件混合在一起了,所以不建议这么使用。如果非要这么使用的话,建议先手动创建一个跟目录,进入到根目录在进行操作。
2.4.6 spring help
init命令还有不少其他参数,包括基于Groovy构建项目的参数、指定用Java版本编译的参数,还有选择构建依赖的Spring Boot版本的参数。可以通过help命令了解所有参数的情况:
$ sh spring help init
2.5 运行命令spring run
run命令:用于运行Java Springboot应用程序
$ sh spring run demo/src/main/java/com/example/demo/DemoApplication.java
购买完整视频,请前往:http://www.mark-to-win.com/TeacherV2.html?id=287