You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Maven 4's stricter validation rejects repositories with uninterpolated property expressions in their IDs (e.g., ${eclipseP2RepoId}). When such repositories come from transitive dependency POMs — where the defining property is not available — builds fail.
PR #12050 addressed a similar issue for dependencies with uninterpolated expressions by filtering them in DefaultArtifactDescriptorReader. However, the same problem exists for repositories from transitive dependency POMs, which are not currently filtered.
Steps to Reproduce
Build apache/opennlp-sandbox with Maven 4
The caseditor-corpus-server-plugin module fails during maven-remote-resources-plugin:3.3.0:process
Extend the filtering from PR #12050 to also cover repositories with uninterpolated IDs in the ArtifactDescriptorResult. In DefaultArtifactDescriptorReader, after delegate.populateResult(), filter out repositories where the ID contains ${:
Description
Maven 4's stricter validation rejects repositories with uninterpolated property expressions in their IDs (e.g.,
${eclipseP2RepoId}). When such repositories come from transitive dependency POMs — where the defining property is not available — builds fail.PR #12050 addressed a similar issue for dependencies with uninterpolated expressions by filtering them in
DefaultArtifactDescriptorReader. However, the same problem exists for repositories from transitive dependency POMs, which are not currently filtered.Steps to Reproduce
apache/opennlp-sandboxwith Maven 4caseditor-corpus-server-pluginmodule fails duringmaven-remote-resources-plugin:3.3.0:processError
Analysis
${eclipseP2RepoId}repository is NOT defined in the opennlp-sandbox project — it comes from a transitive dependency POMeclipseP2RepoIdis defined in the original project context but not available when the POM is consumed as a transitive dependencyDefaultArtifactDescriptorReader, but does NOT filter repositoriesProposed Fix
Extend the filtering from PR #12050 to also cover repositories with uninterpolated IDs in the
ArtifactDescriptorResult. InDefaultArtifactDescriptorReader, afterdelegate.populateResult(), filter out repositories where the ID contains${:Related
Claude Code on behalf of Guillaume Nodet