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