> Spring Boot CLI 是用于快速开发 Spring 应用的命令行工具。用来运行 Groovy
(与 Java 风格相似)脚本。html
spring-cli 彷佛不是能够各类diy spring-boot程序命令行参数、行为的工具,而是执行 groovy 脚原本快速达到一些效果。java
SpringBoot-2.2.0.RELEASElinux
从官网下载 spring-cli
安装,而后将bin目录配置环境变量。 安装完成可经过 spring version
查看版本。web
新建一个文件(如:hello.groovy),内容以下:spring
@RestController class ThisWillActuallyRun{ @RequestMapping("/") String home(){ "Hello World!" } }
运行命令:spring run hello.groovy
,第一次下载各类依赖比较慢,以后就会直接启动了。 此处示例使用默认端口启动一个web服务。 经过访问 http://127.0.0.1:8080/ 获取返回数据。shell
也能够运行命令:spring run hello.groovy -- --server.port=9000
来指定命令行参数。注意:要使用 --
来分隔命令和参数。windows
设置 JVM 命令行参数,能够用 JAVA_OPTS
环境变量,以下:bash
# linux JAVA_OPTS=-Xmx1024m spring run hello.groovy
# windows set "JAVA_OPTS=-Xms256m -Xmx2048m"
如:根据 @Controller
或 @RestController
或 @EnableWebMvc
推断出使用 Spring MVC + Embedded Tomcat
websocket
为了简洁,许多导包语句会自动发生。mvc
Groovy 脚本不像 java 应用须要包含 main 方法,SpringApplication
会自动建立,将你编译的代码做为资源执行。
默认依赖管理声明在 spring-boot-dependencies
中,可经过 @DependencyManagementBom
配置,注解的值须要指定的值知足表达式:groupId:artifactId:version
@DependencyManagementBom("io.spring.platform:platform-bom:1.1.2.RELEASE") @DependencyManagementBom(["com.example:custom-bom:1.0.0","com.example:another-bom:1.0.0"])
spring run *.groovy
spring java my-app.jar *.groovy
生成的jar包含编译应用程序生成的类和应用程序的全部依赖项,以即可以使用java-jar运行它。jar文件还包含来自应用程序类路径的条目。可使用 --include
和 --exclude
添加和删除打包到jar的显式路径。 默认包含的资源以下:
public/**, resources/**, static/**, templates/**, META-INF/**, *
默认排除的以下:
.*, repository/**, build/**, target/**, **/*.jar, **/*.groovy
init
命令容许你没必要离开shell工具而直接使用 start.spring.io 建立一个新项目,以下例所示:
# 项目名为 my-project $ 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 八、打包成 war 的 Gradle 工程
$ spring init --build=gradle --java-version=1.8 --dependencies=websocket --packaging=war sample-app.zip Using service at https://start.spring.io Content saved to 'sample-app.zip'
SpringBoot 包含 BASH 和 zsh shells 的命令行完整脚本。若是不需使用它们(使用windows系统),你能够用 shell
命令启动集成的shell,以下:
$ spring shell Spring Boot (v2.2.0.RELEASE) Hit TAB to complete. Type \'help' and hit RETURN for help, and \'exit' to quit.
使用嵌入式 shell,能够直接使用其余命令:
$ version Spring CLI v2.2.0.RELEASE
嵌入式 shell 支持 ANSI 颜色输出和 tab
提示。若是须要运行原生命令,可使用 !
前缀,退出嵌入式 shell,使用 ctrl-c
。
使用 install
命令添加扩展。接受的扩展格式为:group:artifact:version
,以下:
$ spring install com.example:spring-boot-cli-extension:1.0.0.RELEASE
除了安装你须要的目标依赖,它的全部依赖项也会安装。
使用 uninstall
命令卸载依赖。使用方式与 install
同样。 它卸载目标依赖,以及目标的全部依赖项。 卸载全部扩展依赖,可以使用:
$ spring uninstall --all
spring 框架 4.0 就已经对 DSL 原生支持。在 Grooby 应用中能够用相同的格式使用bean定义。
> Spring Boot CLI 使用Aether(Maven的依赖项解析引擎)解析依赖项。CLI 使用~/.m2/settings.xml中的maven配置来配置Aether。CLI遵循如下配置:
SpringBoot 官方文档 公众号:逸飞兮(专一于 Java 领域知识的深刻学习,从源码到原理,系统有序的学习)