5.4. Spring Boot 的 BOM 文件
Maven Bill of Materials (BOM) 文件的目的是提供一组精心工作的 Maven 依赖关系版本,防止您必须为每个 Maven 工件单独定义版本。
确保您根据您使用的 Spring Boot 版本(Spring Boot 1 或 Spring Boot 2)使用正确的 Fuse BOM。
用于 Spring Boot 的 Fuse BOM 提供了以下优点:
- 定义 Maven 依赖项的版本,以便在将依赖项添加到 POM 时不需要指定版本。
- 定义一组策展的依赖关系,它们被完全测试并支持特定版本的 Fuse。
- 简化 Fuse 的升级.
红帽仅支持由 Fuse BOM 定义的依赖项集合。
5.4.1. 包含 BOM 文件 复制链接链接已复制到粘贴板!
要将 BOM 文件合并到 Maven 项目中,请在项目的 pom.xml 文件中指定 dependencyManagement 元素(或者在父 POM 文件中指定一个 dependencyManagement 项),如以下 Spring Boot 2 和 Spring Boot 1 的示例所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project ...>
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- configure the versions you want to use here -->
<fuse.version>7.4.0.fuse-sb2-740019-redhat-00005</fuse.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>fuse-springboot-bom</artifactId>
<version>${fuse.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
...
</project>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project ...>
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- configure the versions you want to use here -->
<fuse.version>7.4.0.fuse-740036-redhat-00002</fuse.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.redhat-fuse</groupId>
<artifactId>fuse-springboot-bom</artifactId>
<version>${fuse.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
...
</project>
在使用依赖项管理机制指定 BOM 后,可以在不指定工件版本 的情况下将 Maven 依赖项添加到 POM 中。例如,要为 camel-hystrix 组件添加依赖项,您要将以下 XML 片段添加到 POM 中的 dependencies 元素中:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-hystrix-starter</artifactId>
</dependency>
请注意,如何将 Camel 工件 ID 指定为:start -starter 后缀是 in,您可以将 Camel Hystrix 组件指定为 camel-hystrix-starter,而不是 camel-hystrix。Camel 初学者组件以针对 Spring Boot 环境优化的方式打包。