Spring Boot CLI你知多少?- 第394篇

图片

关历史文章(阅读本文前,您可能需要先看下之前的系列👇

国内最全的Spring Boot系列之四

享元模式:共享女友 - 第355篇

SpringBoot有没有学明白,就看你这些面试题是否懂?- 第389篇

图片

师傅:徒儿,好久不见了,你最近都忙啥呢?

图片

悟纤:师傅,最近徒儿也是堕落了好久,也不知道忙啥了,状态不是很对,正在努力的进行调整呢。

图片

师傅:时间管理的基础是精力管理,管理好自己的精力真的很重要,不要总是精力透支,透支多了,就很难找到最佳的状态了。

悟纤:师傅说的是,之后我会努力管理好我的精力。

师傅:今天师傅就和徒儿讲讲SpringBoot CLI,一个神奇的工具。

图片

悟纤:师傅我已经迫不及待了,咱们赶紧开始吧(*^▽^*)。

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] [--] [args]

(2)jar命令:Java程序打成jar包

         语法:spring jar [options]

(3)war命令:将java文件打成war包,用法和jar类似,打包后文件也可以通过java命令执行。

         语法:spring war [options]

(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

 

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟空学院:悟空学院

学院中有Spring Boot相关的课程!!

SpringBoot视频:从零开始学Spring Boot Plus - 网易云课堂

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringSecurity5.0视频:权限管理spring security - 网易云课堂

ShardingJDBC分库分表:分库分表Sharding-JDBC实战 - 网易云课堂

分布式事务解决方案:分布式事务解决方案「手写代码」 - 网易云课堂

JVM内存模型调优实战:深入理解JVM内存模型/调优实战 - 网易云课堂

Spring入门到精通:Spring零基础从入门到精通 - 网易云课堂

大话设计模式之爱你:大话设计模式之爱你一万年 - 网易云课堂


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部