This is an automated email from the ASF dual-hosted git repository. cstamas pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-resolver-ant-tasks.git
The following commit(s) were added to refs/heads/master by this push: new daae339 [MRESOLVER-668] Don't default the scope of managed dependencies to 'compile' (#50) daae339 is described below commit daae3393d32911c100ccef3fc031874c3fe44460 Author: jkahrman <jkahr...@users.noreply.github.com> AuthorDate: Sun Feb 2 09:40:41 2025 -0500 [MRESOLVER-668] Don't default the scope of managed dependencies to 'compile' (#50) If a scope isn't defined in a managed dependency, the scope specified in the dependency section is used for resolving transitive dependencies. I thought that letting the maven-resolver classes do all defaulting would have worked, but without defaulting the scope of the other dependencies created by ConverterUtils.toDependency, ResolveTest.testResolveNestedDependencyCollections() fails. Removing this defaulting still seems like it might be the right thing to do, but I'm not pulling on this thread. I don't know what it is attached to. --- https://issues.apache.org/jira/browse/MRESOLVER-668 --- .../maven/resolver/internal/ant/AntRepoSys.java | 2 +- .../maven/resolver/internal/ant/ConverterUtils.java | 11 +++++++++++ .../maven/resolver/internal/ant/types/Dependency.java | 2 +- .../maven/resolver/internal/ant/ResolveTest.java | 19 +++++++++++++++++++ .../resolver/internal/ant/types/DependencyTest.java | 2 +- src/test/resources/ant/Resolve/ant.xml | 12 +++++++++++- 6 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/AntRepoSys.java b/src/main/java/org/apache/maven/resolver/internal/ant/AntRepoSys.java index ba5de85..065c364 100644 --- a/src/main/java/org/apache/maven/resolver/internal/ant/AntRepoSys.java +++ b/src/main/java/org/apache/maven/resolver/internal/ant/AntRepoSys.java @@ -654,7 +654,7 @@ public class AntRepoSys { dependency.addExclusion(exclusion); } collectRequest.addManagedDependency( - ConverterUtils.toDependency(dependency, globalExclusions, session)); + ConverterUtils.toManagedDependency(dependency, globalExclusions, session)); } } diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/ConverterUtils.java b/src/main/java/org/apache/maven/resolver/internal/ant/ConverterUtils.java index 8034299..3cbf0e3 100644 --- a/src/main/java/org/apache/maven/resolver/internal/ant/ConverterUtils.java +++ b/src/main/java/org/apache/maven/resolver/internal/ant/ConverterUtils.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Properties; +import org.apache.commons.lang3.ObjectUtils; import org.apache.maven.resolver.internal.ant.types.Authentication; import org.apache.maven.resolver.internal.ant.types.Dependency; import org.apache.maven.resolver.internal.ant.types.Exclusion; @@ -82,6 +83,16 @@ class ConverterUtils { public static org.eclipse.aether.graph.Dependency toDependency( Dependency dependency, List<Exclusion> exclusions, RepositorySystemSession session) { + String scope = dependency.getScope(); + return new org.eclipse.aether.graph.Dependency( + toArtifact(dependency, session.getArtifactTypeRegistry()), + ObjectUtils.isEmpty(scope) ? "compile" : scope, + false, + toExclusions(dependency.getExclusions(), exclusions)); + } + + public static org.eclipse.aether.graph.Dependency toManagedDependency( + Dependency dependency, List<Exclusion> exclusions, RepositorySystemSession session) { return new org.eclipse.aether.graph.Dependency( toArtifact(dependency, session.getArtifactTypeRegistry()), dependency.getScope(), diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/types/Dependency.java b/src/main/java/org/apache/maven/resolver/internal/ant/types/Dependency.java index 85cb724..7aac739 100644 --- a/src/main/java/org/apache/maven/resolver/internal/ant/types/Dependency.java +++ b/src/main/java/org/apache/maven/resolver/internal/ant/types/Dependency.java @@ -188,7 +188,7 @@ public class Dependency extends DataType implements DependencyContainer { if (isReference()) { return getRef().getScope(); } - return (scope != null) ? scope : "compile"; + return (scope != null) ? scope : ""; } public void setScope(String scope) { diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java index 022efd6..f869544 100644 --- a/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java +++ b/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java @@ -177,4 +177,23 @@ public class ResolveTest extends AntBuildsTest { prop, allOf(containsString("apiguardian-api"), endsWith("apiguardian-api-1.1.1.jar"))); } + + @Test + public void testResolveTransitiveDependencyManagementTestScope() { + executeTarget("testResolveTransitiveDependencyManagementTestScope"); + + String prop = getProject().getProperty("test.compile.resolve.path.org.slf4j:slf4j-api:jar"); + assertThat("slf4j-api was not resolved as a property", prop, notNullValue()); + assertThat( + "slf4j-api was not resolved to default local repository", + prop, + allOf(containsString("slf4j-api"), endsWith("slf4j-api-2.0.6.jar"))); + + prop = getProject().getProperty("test.resolve.path.org.apiguardian:apiguardian-api:jar"); + assertThat("apiguardian-api was not resolved as a property", prop, notNullValue()); + assertThat( + "apiguardian-api was not resolved to default local repository", + prop, + allOf(containsString("apiguardian-api"), endsWith("apiguardian-api-1.1.1.jar"))); + } } diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java index 16327d2..0fa0522 100644 --- a/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java +++ b/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java @@ -40,7 +40,7 @@ public class DependencyTest { assertEquals("ver", dep.getVersion()); assertEquals("jar", dep.getType()); assertEquals("", dep.getClassifier()); - assertEquals("compile", dep.getScope()); + assertEquals("", dep.getScope()); } @Test diff --git a/src/test/resources/ant/Resolve/ant.xml b/src/test/resources/ant/Resolve/ant.xml index d88fd59..275dea9 100644 --- a/src/test/resources/ant/Resolve/ant.xml +++ b/src/test/resources/ant/Resolve/ant.xml @@ -122,8 +122,18 @@ <target name="testResolveTransitiveDependencyManagement"> <repo:pom file="${project.dir}/transitive-depmgt-pom.xml"/> <repo:resolve> - <properties prefix="test.resolve.path" classpath="compile"/> + <properties prefix="test.resolve.path" classpath="test"/> </repo:resolve> </target> + <target name="testResolveTransitiveDependencyManagementTestScope"> + <repo:pom file="${project.dir}/transitive-depmgt-pom.xml"/> + <repo:resolve> + <properties prefix="test.compile.resolve.path" scopes="compile"/> + <properties prefix="test.compile.resolve.classpath" classpath="compile"/> + <properties prefix="test.resolve.path" scopes="test"/> + <properties prefix="test.resolve.classpath" classpath="test"/> + </repo:resolve> + </target> + </project>