ppalaga commented on a change in pull request #3050: URL: https://github.com/apache/camel-quarkus/pull/3050#discussion_r697397428
########## File path: docs/modules/ROOT/pages/user-guide/dependency-management.adoc ########## @@ -35,40 +30,59 @@ Here is a stub of a `pom.xml` file generated by https://code.quarkus.io/[code.qu </properties> <dependencyManagement> <dependencies> + <!-- The BOMs managing the dependency versions <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-universe-bom</artifactId> + <groupId>io.quarkus.platform</groupId> + <artifactId>quarkus-bom</artifactId> <version>${quarkus.platform.version}</version> <type>pom</type> - <scope>import</scope><!-- The BOM is imported in the <dependencyManagement> --> + <scope>import</scope> + </dependency> + <dependency> + <groupId>io.quarkus.platform</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-timer</artifactId> + <artifactId>camel-quarkus-sql</artifactId> <!-- No explicit version required here and below --> </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-resteasy</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-resteasy-jackson</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-ftp</artifactId> - </dependency> ... </dependencies> ... </project> ---- +[NOTE] +==== +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. +==== + +Which particular BOMs end up in the `pom.xml` file depends on extensions you have selected in the generator tool. +The generator tools take care to select a minimal consistent set. + +If you choose to add an extension at a later point that is not managed by any of the BOMs in your `pom.xml` file, +you do not need to search for the appropriate BOM manually. +With https://quarkus.io/guides/cli-tooling[Quarkus CLI] you can select the extension, and the tool adds the appropriate BOM as needed. +Quarkus CLI also comes in handy when upgrading the BOM versions. + +The `io.quarkus.platform` BOMs are aligned with each other. +That means that if an artifact is managed more than one BOM, it is always managed in the same version. +This has the advantage that application developers do not need to care for the compatibility of the individual artifacts +that may come from various independent projects. +Note that not all combinations of artifacts managed by `quarkus-universe-bom` are tested. Review comment: > You don't mention quarkus-universe-bom anywhere. No, I do not want to confuse the users with yet another BOM, that I think most of them do not need to know about :) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
