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.git
The following commit(s) were added to refs/heads/master by this push:
new bbac290e7 Feat: Maven 3 experimental scope manager (#1868)
bbac290e7 is described below
commit bbac290e7804bd0805f59d3c5589b97d12430e1b
Author: Tamas Cservenak <[email protected]>
AuthorDate: Mon May 11 23:09:22 2026 +0200
Feat: Maven 3 experimental scope manager (#1868)
Just FTR, but is not used.
---
.../supplier/Maven3ScopeManagerConfiguration.java | 40 ++++++++++++++++++----
1 file changed, 34 insertions(+), 6 deletions(-)
diff --git
a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
index 2aa1ba776..6b1bc3236 100644
---
a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
+++
b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
@@ -43,21 +43,32 @@ import static
org.eclipse.aether.impl.scope.BuildScopeQuery.union;
/**
* Maven3 scope configurations. Configures scope manager to support Maven3
scopes.
+ * <p>
+ * This manager supports the old Maven 3 dependency scopes + new
"compile-only".
+ * <p>
+ * Note: Maven3 CANNOT support Maven 4 scopes "test-only" and "test-runtime",
as it does not distinguish
+ * resolution scope (the class {@code ResolutionScope} has only "TEST",
instead of "TEST_COMPILE" and "TEST_RUNTIME").
*
* @since 2.0.11
*/
public final class Maven3ScopeManagerConfiguration implements
ScopeManagerConfiguration {
public static final Maven3ScopeManagerConfiguration INSTANCE = new
Maven3ScopeManagerConfiguration();
- public static final String DS_COMPILE = "compile";
- public static final String DS_RUNTIME = "runtime";
- public static final String DS_PROVIDED = "provided";
- public static final String DS_SYSTEM = "system";
- public static final String DS_TEST = "test";
+ public static final String DS_NONE = "none";
+ public static final String DS_COMPILE = "compile"; // JavaScopes.COMPILE;
+ public static final String DS_COMPILE_ONLY = "compile-only";
+ public static final String DS_RUNTIME = "runtime"; // JavaScopes.RUNTIME;
+ public static final String DS_PROVIDED = "provided"; //
JavaScopes.PROVIDED;
+ public static final String DS_SYSTEM = "system"; // JavaScopes.SYSTEM;
+ public static final String DS_TEST = "test"; // JavaScopes.TEST;
+ public static final String DS_TEST_ONLY = "test-only";
+ public static final String DS_TEST_RUNTIME = "test-runtime";
+
public static final String RS_NONE = "none";
public static final String RS_MAIN_COMPILE = "main-compile";
public static final String RS_MAIN_COMPILE_PLUS_RUNTIME =
"main-compilePlusRuntime";
public static final String RS_MAIN_RUNTIME = "main-runtime";
public static final String RS_MAIN_RUNTIME_PLUS_SYSTEM =
"main-runtimePlusSystem";
+ public static final String RS_TEST = "test";
public static final String RS_TEST_COMPILE = "test-compile";
public static final String RS_TEST_RUNTIME = "test-runtime";
@@ -81,7 +92,7 @@ public final class Maven3ScopeManagerConfiguration implements
ScopeManagerConfig
@Override
public BuildScopeSource getBuildScopeSource() {
return new BuildScopeMatrixSource(
- Collections.singletonList(CommonBuilds.PROJECT_PATH_MAIN),
+ Arrays.asList(CommonBuilds.PROJECT_PATH_MAIN,
CommonBuilds.PROJECT_PATH_TEST),
Arrays.asList(CommonBuilds.BUILD_PATH_COMPILE,
CommonBuilds.BUILD_PATH_RUNTIME),
CommonBuilds.MAVEN_TEST_BUILD_SCOPE);
}
@@ -89,7 +100,10 @@ public final class Maven3ScopeManagerConfiguration
implements ScopeManagerConfig
@Override
public Collection<DependencyScope>
buildDependencyScopes(InternalScopeManager internalScopeManager) {
ArrayList<DependencyScope> result = new ArrayList<>();
+ result.add(internalScopeManager.createDependencyScope(DS_NONE, false,
Collections.emptySet()));
result.add(internalScopeManager.createDependencyScope(DS_COMPILE,
true, all()));
+ result.add(internalScopeManager.createDependencyScope(
+ DS_COMPILE_ONLY, false, select(CommonBuilds.PROJECT_PATH_MAIN,
CommonBuilds.BUILD_PATH_COMPILE)));
result.add(internalScopeManager.createDependencyScope(
DS_RUNTIME, true,
byBuildPath(CommonBuilds.BUILD_PATH_RUNTIME)));
result.add(internalScopeManager.createDependencyScope(
@@ -100,6 +114,10 @@ public final class Maven3ScopeManagerConfiguration
implements ScopeManagerConfig
select(CommonBuilds.PROJECT_PATH_TEST,
CommonBuilds.BUILD_PATH_RUNTIME))));
result.add(internalScopeManager.createDependencyScope(
DS_TEST, false,
byProjectPath(CommonBuilds.PROJECT_PATH_TEST)));
+ result.add(internalScopeManager.createDependencyScope(
+ DS_TEST_ONLY, false, singleton(CommonBuilds.PROJECT_PATH_TEST,
CommonBuilds.BUILD_PATH_COMPILE)));
+ result.add(internalScopeManager.createDependencyScope(
+ DS_TEST_RUNTIME, false,
singleton(CommonBuilds.PROJECT_PATH_TEST, CommonBuilds.BUILD_PATH_RUNTIME)));
result.add(internalScopeManager.createSystemDependencyScope(
DS_SYSTEM, false, all(), ArtifactProperties.LOCAL_PATH));
return result;
@@ -122,28 +140,38 @@ public final class Maven3ScopeManagerConfiguration
implements ScopeManagerConfig
allDependencyScopes));
result.add(internalScopeManager.createResolutionScope(
RS_MAIN_COMPILE,
+ Collections.singleton("compile"),
InternalScopeManager.Mode.ELIMINATE,
singleton(CommonBuilds.PROJECT_PATH_MAIN,
CommonBuilds.BUILD_PATH_COMPILE),
Collections.singletonList(system),
nonTransitiveDependencyScopes));
result.add(internalScopeManager.createResolutionScope(
RS_MAIN_COMPILE_PLUS_RUNTIME,
+ Collections.singleton("compile+runtime"),
InternalScopeManager.Mode.ELIMINATE,
byProjectPath(CommonBuilds.PROJECT_PATH_MAIN),
Collections.singletonList(system),
nonTransitiveDependencyScopes));
result.add(internalScopeManager.createResolutionScope(
RS_MAIN_RUNTIME,
+ Collections.singleton("runtime"),
InternalScopeManager.Mode.ELIMINATE,
singleton(CommonBuilds.PROJECT_PATH_MAIN,
CommonBuilds.BUILD_PATH_RUNTIME),
Collections.emptySet(),
nonTransitiveDependencyScopes));
result.add(internalScopeManager.createResolutionScope(
RS_MAIN_RUNTIME_PLUS_SYSTEM,
+ Collections.singleton("runtime+system"),
InternalScopeManager.Mode.ELIMINATE,
singleton(CommonBuilds.PROJECT_PATH_MAIN,
CommonBuilds.BUILD_PATH_RUNTIME),
Collections.singletonList(system),
nonTransitiveDependencyScopes));
+ result.add(internalScopeManager.createResolutionScope(
+ RS_TEST,
+ InternalScopeManager.Mode.ELIMINATE,
+ byProjectPath(CommonBuilds.PROJECT_PATH_TEST),
+ Collections.singletonList(system),
+ nonTransitiveDependencyScopes));
result.add(internalScopeManager.createResolutionScope(
RS_TEST_COMPILE,
InternalScopeManager.Mode.ELIMINATE,