Spring Boot 官网文档简单翻译 Part VII

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

  • sample groovy scripts

如果你觉得 CLI 工具已经不能满足你的需求,尝试一下构建工具。

你可能感兴趣的:(Spring Boot 官网文档简单翻译 Part VII)