Skip to content

[4.0.x] Filter project repos with uninterpolated property expressions#12213

Closed
gnodet wants to merge 1 commit into
apache:maven-4.0.xfrom
gnodet:cherry-pick-12204-to-4.0.x
Closed

[4.0.x] Filter project repos with uninterpolated property expressions#12213
gnodet wants to merge 1 commit into
apache:maven-4.0.xfrom
gnodet:cherry-pick-12204-to-4.0.x

Conversation

@gnodet
Copy link
Copy Markdown
Contributor

@gnodet gnodet commented Jun 4, 2026

Cherry-pick of #12204

…#12204)

* mvnup: comment out repositories with undefined property expressions

Projects like uima-uimaj, opennlp-sandbox, and seatunnel-shade define
repositories with ${eclipseP2RepoId} in the repo ID. This property is
never defined — it was used as a literal string in Maven 3. Maven 4
rejects it with IllegalArgumentException at runtime.

Extend the mvnup compatibility fix strategy to detect and comment out
repositories and plugin repositories whose id or url contain undefined
property expressions, following the same pattern used for dependencies
(apache#12080). Handles both root-level and profile-level repositories.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Filter project repositories with uninterpolated property expressions

When a project POM defines repositories with ${...} expressions that
cannot be resolved (e.g. ${eclipseP2RepoId}), Maven 4 previously
failed with InternalErrorException. This change downgrades the model
validation from ERROR to WARNING and filters such repositories before
they reach the resolver, logging a warning instead of failing the build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@gnodet gnodet closed this Jun 4, 2026
@gnodet gnodet deleted the cherry-pick-12204-to-4.0.x branch June 4, 2026 08:55
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