Skip to content

Add post: The Dependency Your Build Downloads That No Maven Tool Will Show You - #100

Merged
algomaster99 merged 5 commits into
mainfrom
claude/maven-hermetic-builds-blog-post
Aug 12, 2026
Merged

Add post: The Dependency Your Build Downloads That No Maven Tool Will Show You#100
algomaster99 merged 5 commits into
mainfrom
claude/maven-hermetic-builds-blog-post

Conversation

@algomaster99

Copy link
Copy Markdown
Member

Summary

New post walking through the Surefire + JUnit 5 dynamic-resolution case (chains-project/maven-lockfile#1568): a minimal repro where Surefire resolves its test-framework provider imperatively at execution time, producing 7 artifacts that appear in none of dependency:tree, resolve-plugins, or go-offline — and where go-offline's own populated repo fails an mvn --offline test. Also touches on the same pattern in Failsafe, maven-compiler-plugin's annotationProcessorPaths (MCOMPILER-503), Quarkus deployment JARs, and protobuf-maven-plugin + os-maven-plugin, then explains how maven-lockfile's in-progress DynamicResolutionSpy extension (chains-project/maven-lockfile#1623) closes the gap for generate/freeze.

Added to the "Posts" list on the index page, newest first.

Test plan

  • Rendered locally as markdown; frontmatter matches existing posts (ai-bump.md, agentic-supply-chain-security.md)
  • Links checked: issue/PR references point at real, currently-open chains-project/maven-lockfile items

Generated by Claude Code

… Show You

Covers the Surefire+JUnit5 dynamic-provider-resolution case (also affecting
Failsafe, maven-compiler-plugin's annotationProcessorPaths, Quarkus, and
protobuf-maven-plugin+os-maven-plugin): why dependency:tree, resolve-plugins,
go-offline, and trusted checksums are all structurally blind to artifacts a
plugin resolves imperatively at execution time, and how maven-lockfile's
in-progress DynamicResolutionSpy extension closes that gap for generate/freeze.
@algomaster99
algomaster99 marked this pull request as draft August 11, 2026 12:50
claude and others added 4 commits August 11, 2026 14:33
The parent POM org.apache.maven.surefire:surefire-providers:3.2.5 was
missing from the original count - it's needed to resolve
surefire-junit-platform's effective model (and is where the unversioned
junit-platform-launcher dependency gets pinned to 1.9.3), but is only
ever reachable through the same dynamic root, so it's equally invisible
to static tools. Also clarifies that junit-platform-launcher resolves to
two different versions (1.9.3 via the POM chain, 1.10.2 preferred by
Surefire's own classpath assembly at runtime), and adds an ASCII diagram
showing the actual parent-POM/dependency edges.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@algomaster99
algomaster99 marked this pull request as ready for review August 12, 2026 17:10
@algomaster99
algomaster99 merged commit c056ff1 into main Aug 12, 2026
3 checks passed
@algomaster99
algomaster99 deleted the claude/maven-hermetic-builds-blog-post branch August 12, 2026 17:13
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.

2 participants