sbt/lm-coursier
bitloi 4c16466672
[2.x] feat: Support Maven BOM (Bill of Materials) (#8675)
**Consuming BOMs**

- You can declare a BOM with `.pomOnly()` and versionless deps with `"*"`:
  - `libraryDependencies += ("com.fasterxml.jackson" % "jackson-bom" % "2.21.0").pomOnly()`
  - `libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "*"`
- BOMs are passed to Coursier via `Resolve.addBom()`; version `"*"` is resolved from the BOM.

**makePom**

- POM-only dependencies are emitted under `<dependencyManagement><dependencies>...</dependencies></dependencyManagement>` with `<type>pom</type>` and `<scope>import</scope>`.
- Dependencies with version `"*"` are emitted without a `<version>` element so Maven uses the BOM-managed version.

**Ivy / publishLocal emulation**

- When publishing to Ivy (e.g. `publishLocal`), BOM-resolved versions (deps that had `"*"`) are written into the published `ivy.xml` as forced dependencies (`force="true"`), so consumers that depend on this module get those versions.
2026-02-02 10:54:43 -05:00
..
definitions/src/main/scala/lmcoursier [2.x] feat: Add dependency lock file support (#2989) (#8581) 2026-01-21 19:08:59 -05:00
metadata@95874ca5bd Move metadata to lm-coursier/metadata 2024-10-09 09:44:42 +02:00
src [2.x] feat: Support Maven BOM (Bill of Materials) (#8675) 2026-02-02 10:54:43 -05:00
NOTICE Add NOTICE and headerLicense 2024-10-11 14:32:32 +02:00