Skip to content

build(dependencies): minimize consumer dependency footprint - #943

Open
bercianor wants to merge 1 commit into
masterfrom
build/minimize-consumer-dependency-footprint
Open

build(dependencies): minimize consumer dependency footprint#943
bercianor wants to merge 1 commit into
masterfrom
build/minimize-consumer-dependency-footprint

Conversation

@bercianor

Copy link
Copy Markdown
Contributor

Summary

  • Align dependency scopes with actual public API and runtime usage.
  • Keep third-party drivers and framework integrations application-provided.
  • Preserve Flamingock artifacts as the only intended transitive Flamingock dependencies.

Changes

  • Reclassified vendor dependencies exposed in public APIs as compileOnlyApi.
  • Removed redundant direct dependencies that are already provided through the intended Flamingock module graph.
  • Marked external compileOnlyApi dependencies as optional in generated Maven POMs.
  • Removed the obsolete MongoDB Spring Data audit-store BOM constraint.
  • Removed the redundant direct Reactive Streams declaration from the MongoDB reactive utility.

Why

Applications should choose and provide only the infrastructure drivers they use. Flamingock must not transitively pull MongoDB, Couchbase, DynamoDB, Spring, GraalVM, or similar integrations into consumer runtime classpaths.

Gradle metadata already distinguishes compile-only API dependencies from runtime dependencies. The publication adjustment brings Maven behavior in line by marking third-party integration dependencies as optional.

Benefits

  • Smaller application runtime classpaths.
  • Fewer driver and framework version conflicts.
  • Clear ownership of external infrastructure dependencies.
  • Accurate published metadata for APIs that expose optional provider types.

Validation

  • Generated representative Maven POMs and verified external integration dependencies are optional.
  • Verified Flamingock and implementation dependencies retain their intended transitivity.
  • Compiled affected modules successfully with Java 17.0.8 GraalVM.
  • Completed independent dependency-scope and publication-metadata reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant