Skip to content

Commit b1ff02b

Browse files
committed
Enhance CLAUDE.md with instructions how to override dependency versions
1 parent d4d9bec commit b1ff02b

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,34 @@ Surefire and Failsafe are configured globally to exclude tests tagged with `@Tag
7373

7474
All member versions are defined as properties in the root `pom.xml` (e.g., `<camel-quarkus.version>`, `<quarkus-langchain4j.version>`). The `$` sign in generated properties is escaped using the `<dollarSign>` property.
7575

76+
### Overriding Dependency Versions in a Member BOM
77+
78+
There are two mechanisms depending on whether the dependency is already managed by the member's upstream BOM:
79+
80+
- **`<dependencyManagement>`** (on the `<member>`) — Use this to **add** a dependency that is **not** already managed by the member's upstream BOM. This injects the dependency into the generated platform BOM for that member.
81+
- **`<enforcedDependencies>`** (in `<bomGenerator>`) — Use this to **override** the version of a dependency that **is** already managed by the member's upstream BOM or by Quarkus Core. Enforced dependencies take precedence over BOM-resolved versions.
82+
83+
Example of `<dependencyManagement>` on a member:
84+
```xml
85+
<member>
86+
<name>MyMember</name>
87+
<bom>com.example:my-bom:${my.version}</bom>
88+
<dependencyManagement>
89+
<dependency>org.example:some-lib:1.2.3</dependency>
90+
</dependencyManagement>
91+
...
92+
</member>
93+
```
94+
95+
Example of `<enforcedDependencies>` in `<bomGenerator>`:
96+
```xml
97+
<bomGenerator>
98+
<enforcedDependencies>
99+
<dependency>org.example:already-managed-lib:2.0.0</dependency>
100+
</enforcedDependencies>
101+
...
102+
</bomGenerator>
103+
```
76104
## BOM Generation Algorithm
77105

78106
1. Quarkus Core constraints are **immutable** — they always win.

0 commit comments

Comments
 (0)