Chapter 2. Dependency management
A specific Camel Quarkus release is supposed to work only with a specific Quarkus release.
2.1. Quarkus BOM
The core Quarkus dependencies are managed via com.redhat.quarkus.quarkus:quarkus-bom
. This BOM does not manage the additional Quarkus extensions (for example Camel Quarkus or Kubernetes), so there are other BOMs available for you to use in your projects that contain import quarkus-bom
.
BOM stands for "Bill of Materials" - it is a pom.xml
whose main purpose is to manage the versions of artifacts so that end users importing the BOM in their projects do not need to care which particular versions of the artifacts are supposed to work together. In other words, having a BOM imported in the <depependencyManagement>
section of your pom.xml
allows you to avoid specifying versions for the dependencies managed by the given BOM.
2.2. Camel Quarkus BOM
As long as you do not plan to use any dependencies beyond those from Quarkus and Camel Quarkus, you should use org.apache.camel.quarkus:camel-quarkus-bom
which manages all supported Camel artifacts and imports com.redhat.quarkus.quarkus:quarkus-bom
.
For this technology preview, do not use com.redhat.quarkus:quarkus-universe-bom
as it does not contain the supported Camel extensions included in this release.
2.3. Combining with other BOMs
When combining camel-quarkus-bom
with any other BOM, think carefully in which order you import them, because the order of imports defines the precedence.
For example, if my-foo-bom
is imported before camel-quarkus-bom
then the artifact versions defined in my-foo-bom
will take the precedence. This may or may not be what you intend, depending on whether or not there are any overlapping actifacts in your my-foo-bom
and camel-quarkus-bom
. Additionally, you may also need to consider if those artifact versions in my-foo-bom
with a higher precedence are compatible with the rest of the artifacts managed in camel-quarkus-bom
.