第 2 章 依赖项管理
特定的 Red Hat build of Apache Camel for Quarkus 发行版本应该只适用于特定的 Quarkus 发行版本。
2.1. 用于启动新项目的 Quarkus 工具 复制链接链接已复制到粘贴板!
在新项目中获取依赖项版本的最简单且最简单的方法是使用 Quarkus 工具之一:
- code.quarkus.redhat.com - an online project generator,
- Quarkus Maven 插件
这些工具允许您选择扩展并构建新的 Maven 项目。
可用的扩展范围跨越 Quarkus Core、Camel Quarkus 和其他几个第三方参与项目,如 Hazelcast、Cassandra、Kogito 和 OptaPlanner。
生成的 pom.xml 类似如下:
<project>
...
<properties>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>com.redhat.quarkus.platform</quarkus.platform.group-id>
<quarkus.platform.version>
<!-- The latest 3.8.x version from https://maven.repository.redhat.com/ga/com/redhat/quarkus/platform/quarkus-bom -->
</quarkus.platform.version>
...
</properties>
<dependencyManagement>
<dependencies>
<!-- The BOMs managing the dependency versions -->
<dependency>
<groupId>${quarkus.platform.group-id}</groupId>
<artifactId>quarkus-bom</artifactId>
<version>${quarkus.platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>${quarkus.platform.group-id}</groupId>
<artifactId>quarkus-camel-bom</artifactId>
<version>${quarkus.platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- The extensions you chose in the project generator tool -->
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-sql</artifactId>
<!-- No explicit version required here and below -->
</dependency>
...
</dependencies>
...
</project>
BOM 代表 "Bill of Materials" - 它是 pom.xml,其主要目的是管理工件版本,以便最终用户在其项目中导入 BOM 时不需要处理哪些特定版本应该一起工作。换句话说,在 pom.xml 的 & lt;depependencyManagement > 部分中导入了一个 BOM,您可以避免为给定 BOM 管理的依赖项指定版本。
哪些特定的 BOM 最终在 pom.xml 文件中取决于您在生成器工具中选择的扩展。生成器工具需要注意选择最小一致的集合。
如果您选择稍后添加扩展,该扩展不由 pom.xml 文件中的任何 BOM 管理,则不需要手动搜索适当的 BOM。
使用 quarkus-maven-plugin,您可以选择扩展,工具则根据需要添加适当的 BOM。您还可以使用 quarkus-maven-plugin 升级 BOM 版本。
com.redhat.quarkus.platform BOMs 相互一致,这意味着如果工件在多个 BOM 中管理,它总是使用相同的版本进行管理。这使应用程序开发人员不需要注意可能来自不同独立项目的单个工件的兼容性。