View on GitHub

spring-boot-in-action

Spring Boot 实战笔记

获取依赖 @Grab

举例来说,假设你想往项目里添加H2数据库:

方法一:明确地声明依赖的组、模块和版本号

@Grab(group="com.h2database", module="h2", version="1.4.190")

方法二:用更简洁的冒号分割表示依赖

@Grab("com.h2database:h2:1.4.185")

方法三:不指定版本号,确切的版本号是由你所使用的CLI的版本来决定的。

@Grab("com.h2database:h2")

方法四:常用依赖还可以省去Group ID,直接在 @Grab 里写上模块的ID。

@Grab("h2")

Grab 提示

Spring Boot 用于下载第三方库的提示:

编号 提示 下载/链接的依赖
1 JdbcTemplate, NamedParameterJdbcTemplate, DataSource JDBC应用程序
2 @EnableJms JMS应用程序
3 @EnableCaching 缓存抽象
4 @Test JUnit
5 @EnableRabbit RabbitMQ
6 @EnableReactor 项目反应堆
7 extends Specification Spock测试
8 @EnableBatchProcessing Spring Batch
9 @MessageEndpoint, @EnableIntegrationPatterns Spring集成
10 @EnableDeviceResolver Spring Mobile
11 @Controller, @RestController, @EnableWebMvc Spring MVC + 嵌入式Tomcat
12 @EnableWebSecurity Spring Security
13 @EnableTransactionManagement Spring事务管理

覆盖默认依赖版本 @GrabMetadata

Spring Boot引入了新的 @GrabMetadata 注解,可以和 @Grab 搭配使用,用属性文件里的内容来覆盖默认的依赖版本。

要用 @GrabMetadata ,可以把它加到某个Groovy脚本文件里,提供相应的属性文件来覆盖 依赖元数据:

@GrabMetadata("com.myorg:custom-versions:1.0.0")

希望让 @GrabMetadata 使用 Spring IO平台 上定义的依赖版本:

@GrabMetadata('io.spring.platform:platform-versions:1.0.4.RELEASE')

这会覆盖 CLI 的默认依赖版本,使Spring IO平台定义的版本取而代之。

添加依赖仓库 @GrabResolver

默认情况下, @Grab 声明的依赖是从Maven中心仓库(http://repo1.maven.org/maven2/)拉取 的。

@GrabResolver 注解可以让你指定额外的仓库,用来获取依赖。

从 JBoss 的仓库里获取到最新的Hibernate版本:

@GrabResolver(name='jboss', root='https://repository.jboss.org/nexus/content/groups/public-jboss')