Part VII. Spring Boot CLI
文档说明:
- 文档对应的版本为 2.1.0.M3
- 这不是文档的完整中文翻译,也有可能跟原文文字不一一对应,只是我阅读文档时候做的简单笔记
- 如果对应的章节没有任何中文,有可能是文档内容比较少,建议直接看原文,或者是我不感兴趣的部分
- 目录标题没有做翻译,首先标题一般一眼就能看懂什么意思,不做翻译还能保证原文意思,其次也方便对应到原文位置
Spring Boot CLI(Command-Line Interface) 是一个快速开发 Spring Boot 应用的命令行工具,允许你运行 Groovy 脚本。
65. Installing the CLI
参看 10.2 节内容:Installing the Spring Boot CLI
66. Using the CLI
spring 命令:
$ spring help run
spring run - Run a spring groovy script
usage: spring run [options] <files> [--] [args]
Option Description
------ -----------
--autoconfigure [Boolean] Add autoconfigure compiler
transformations (default: true)
--classpath, -cp Additional classpath entries
-e, --edit Open the file with the default system
editor
--no-guess-dependencies Do not attempt to guess dependencies
--no-guess-imports Do not attempt to guess imports
-q, --quiet Quiet logging
-v, --verbose Verbose logging of dependency
resolution
--watch Watch the specified file for changes
$ spring version
Spring CLI v2.1.0.M3
66.1 Running Applications with the CLI
通过 run 命令可编译并运行 Groovy 代码,Spring Boot CLI 已经内置了 Groovy 软件,你不需要在额外安装。
@RestController
class WebApplication {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
$ spring run hello.groovy
$ spring run hello.groovy -- --server.port=9000
$ JAVA_OPTS=-Xmx1024m spring run hello.groovy
66.1.1 Deduced “grab” Dependencies
Groovy 提供了 @Grab 注解来让你声明第三方依赖库,Groovy 会自动下载库文件,如果 Maven 或者 Gradle 的行为一样。
Spring Boot 延续了这项功能,意图在你的代码里面减少 @Grab 注解。例如上面例子的 @RestController,Spring Boot 自动引入了 Tomcat 和 Spring MVC。
更多的 Grab 自动配置 可参看 CompilerAutoConfiguration 类。
66.1.2 Deduced “grab” Coordinates
引入第三方库的时候,不要指定 group 和 version,会借用 Spring Boot 默认的依赖元数据。
66.1.3 Default Import Statements
import 语句不需要填写 fully-qualified names。
66.1.4 Automatic Main Method
66.1.5 Custom Dependency Management
引入你指定的依赖库:
@DependencyManagementBom("com.example.custom-bom:1.0.0")
66.2 Applications with Multiple Source Files
$ spring run *.groovy
66.3 Packaging Your Application
打包成可执行的 jar 文件:
$ spring jar my-app.jar *.groovy
66.4 Initialize a New Project
init 命令可以让你通过 start.spirng.io 网址来创建一个新项目
$ spring init --dependencies=web,data-jpa my-project
Using service at https://start.spring.io
Project extracted to '/Users/developer/example/my-project'
66.5 Using the Embedded Shell
Spring Boot 在 BASH 和 zsh 有自动补全命令的脚本,在 Windows 下面可以启用内嵌的 shell:
$ spring shell
Spring Boot (v2.1.0.M3)
Hit TAB to complete. Type \'help' and hit RETURN for help, and \'exit' to quit.
66.6 Adding Extensions to the CLI
引入第三方库:
# group:artifact:version
$ spring install com.example:spring-boot-cli-extension:1.0.0.RELEASE
# uninstall
$ spring uninstall com.example:spring-boot-cli-extension:1.0.0.RELEASE
67. Developing Applications with the Groovy Beans DSL
bean{}
@Configuration
class Application implements CommandLineRunner {
@Autowired
SharedService service
@Override
void run(String... args) {
println service.message
}
}
import my.company.SharedService
beans {
service(SharedService) {
message = "Hello World"
}
}
68. Configuring the CLI with settings.xml
Spring Boot CLI 使用 Aether 来处理依赖事情,Aether 也是 Maven 依赖管理的引擎。CLI 也会使用 ~/.m2/setting.xml 来配置 Aether。
See Maven’s settings documentation for further information.
69. What to Read Next
如果你觉得 CLI 工具已经不能满足你的需求,尝试一下构建工具。
网友评论