You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2026/05/19 10:03:51 UTC
(maven) 02/02: Fix #12086: filter transitive repos with uninterpolated expressions
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch backport-12088-to-4.0.x
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 41016d48cc922dce3793a36637f30d2d2416af08
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Mon May 18 23:51:28 2026 +0200
Fix #12086: filter transitive repos with uninterpolated expressions
Extend the uninterpolated expression filtering to also cover
repositories from transitive dependency POMs. This prevents
build failures when a transitive dependency defines a repository
with a property expression (e.g., ${eclipseP2RepoId}) as its ID
that is only available in the original project context.
Cherry-picked and adapted from PR #12088 for the 4.0.x branch.
Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
---
.../maven/impl/resolver/DefaultArtifactDescriptorReader.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java
index fece86dc64..88d168cccf 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultArtifactDescriptorReader.java
@@ -334,6 +334,13 @@ private int getPolicy(RepositorySystemSession session, Artifact a, ArtifactDescr
}
private void filterUninterpolatedDependencies(ArtifactDescriptorResult result) {
+ result.getRepositories().removeIf(repo -> {
+ if (containsPlaceholder(repo.getId()) || containsPlaceholder(repo.getUrl())) {
+ logger.debug("Filtered repository with uninterpolated expression: {}", repo);
+ return true;
+ }
+ return false;
+ });
result.getDependencies().removeIf(dep -> {
if (hasUninterpolatedExpression(dep.getArtifact())) {
logger.debug("Filtered dependency with uninterpolated expression: {}", dep);