diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8041DependencyResolutionScope.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8041DependencyResolutionScope.java
new file mode 100644
index 000000000..a5fe4782b
--- /dev/null
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng8041DependencyResolutionScope.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.it;
+
+import java.io.File;
+import java.util.List;
+
+import org.apache.maven.shared.verifier.Verifier;
+import org.apache.maven.shared.verifier.util.ResourceExtractor;
+import org.junit.jupiter.api.Test;
+
+/**
+ * This is a test set for MNG-8041.
+ */
+class MavenITmng8041DependencyResolutionScope extends AbstractMavenIntegrationTestCase {
+
+ MavenITmng8041DependencyResolutionScope() {
+ super("[4.0.0-beta-5,)");
+ }
+
+ /**
+ * Verify the dependency tree resolution
+ */
+ @Test
+ void testScopeResolution() throws Exception {
+ File testDir = ResourceExtractor.simpleExtractResources(getClass(), "/mng-8041-resolution-scope");
+
+ Verifier verifier = newVerifier(testDir.getAbsolutePath());
+ verifier.addCliArgument("install");
+ verifier.execute();
+ verifier.verifyErrorFreeLog();
+
+ List lines = verifier.loadFile(verifier.getBasedir(), verifier.getLogFileName(), false);
+ assertEquals(
+ 2l,
+ lines.stream()
+ .filter(l -> l.contains("aopalliance:aopalliance:jar:1.0"))
+ .count());
+ }
+}
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java b/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java
index c9cca4cf5..597186682 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/TestSuiteOrdering.java
@@ -120,6 +120,7 @@ public TestSuiteOrdering() {
* the tests are to finishing. Newer tests are also more likely to fail, so this is
* a fail fast technique as well.
*/
+ suite.addTestSuite(MavenITmng8041DependencyResolutionScope.class);
suite.addTestSuite(MavenITmng7982DependencyManagementTransitivityTest.class);
suite.addTestSuite(MavenITmng8294ParentChecksTest.class);
suite.addTestSuite(MavenITmng8293BomImportFromReactor.class);
diff --git a/core-it-suite/src/test/resources-filtered/bootstrap.txt b/core-it-suite/src/test/resources-filtered/bootstrap.txt
index b2542cf9a..7c3b4838f 100644
--- a/core-it-suite/src/test/resources-filtered/bootstrap.txt
+++ b/core-it-suite/src/test/resources-filtered/bootstrap.txt
@@ -111,6 +111,7 @@ org.apache.maven.plugins:maven-plugin-plugin:3.2
org.apache.maven.plugins:maven-plugin-plugin:3.3
org.apache.maven.plugins:maven-plugin-plugin:3.6.0
org.apache.maven.plugins:maven-plugin-plugin:3.9.0
+org.apache.maven.plugins:maven-plugin-plugin:4.0.0-beta-1
org.apache.maven.plugins:maven-rar-plugin:${stubPluginVersion}
org.apache.maven.plugins:maven-release-plugin:3.0.0-M5
org.apache.maven.plugins:maven-remote-resources-plugin:1.7.0
diff --git a/core-it-suite/src/test/resources/mng-8041-resolution-scope/downstream/pom.xml b/core-it-suite/src/test/resources/mng-8041-resolution-scope/downstream/pom.xml
new file mode 100644
index 000000000..bcee8c280
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-8041-resolution-scope/downstream/pom.xml
@@ -0,0 +1,28 @@
+
+
+
+ mng-8041-downstream
+
+
+
+ org.apache.maven.its
+ mng-8041-upstream
+
+
+
+
+
+
+ org.apache.maven.its
+ mng-8041-plugin
+
+
+
+ static-tree
+
+
+
+
+
+
+
diff --git a/core-it-suite/src/test/resources/mng-8041-resolution-scope/plugin/pom.xml b/core-it-suite/src/test/resources/mng-8041-resolution-scope/plugin/pom.xml
new file mode 100644
index 000000000..abc50abd2
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-8041-resolution-scope/plugin/pom.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ mng-8041-plugin
+ maven-plugin
+
+
+
+ org.apache.maven
+ maven-api-core
+ 4.0.0-beta-5-SNAPSHOT
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-plugin-plugin
+ 4.0.0-beta-1
+
+ test
+
+
+
+
+
+
diff --git a/core-it-suite/src/test/resources/mng-8041-resolution-scope/plugin/src/main/java/org/apache/maven/its/mng8041/TestMojo.java b/core-it-suite/src/test/resources/mng-8041-resolution-scope/plugin/src/main/java/org/apache/maven/its/mng8041/TestMojo.java
new file mode 100644
index 000000000..f74c44c1c
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-8041-resolution-scope/plugin/src/main/java/org/apache/maven/its/mng8041/TestMojo.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.its.mng8041;
+
+import org.apache.maven.api.Node;
+import org.apache.maven.api.PathScope;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
+import org.apache.maven.api.di.Inject;
+import org.apache.maven.api.plugin.annotations.Mojo;
+
+@Mojo(name = "static-tree", defaultPhase = "validate")
+public class TestMojo implements org.apache.maven.api.plugin.Mojo {
+
+ @Inject
+ Project project;
+
+ @Inject
+ Session session;
+
+ @Override
+ public void execute() {
+ Node node = session.collectDependencies(project, PathScope.MAIN_RUNTIME);
+ display(node, "");
+ }
+
+ private void display(Node node, String prefix) {
+ System.out.println(prefix + node);
+ node.getChildren().forEach(c -> display(c, prefix + " "));
+ }
+}
diff --git a/core-it-suite/src/test/resources/mng-8041-resolution-scope/pom.xml b/core-it-suite/src/test/resources/mng-8041-resolution-scope/pom.xml
new file mode 100644
index 000000000..50f087504
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-8041-resolution-scope/pom.xml
@@ -0,0 +1,7 @@
+
+
+ org.apache.maven.its
+ mng-8041
+ 1.0-SNAPSHOT
+ pom
+
diff --git a/core-it-suite/src/test/resources/mng-8041-resolution-scope/upstream/pom.xml b/core-it-suite/src/test/resources/mng-8041-resolution-scope/upstream/pom.xml
new file mode 100644
index 000000000..48387b48a
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-8041-resolution-scope/upstream/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+ mng-8041-upstream
+
+
+
+ aopalliance
+ aopalliance
+ 1.0
+ provided
+
+
+ com.google.inject
+ guice
+ 6.0.0
+
+
+ com.google.guava
+ guava
+ 31.0.1-jre
+ test
+
+
+
+
+
+
+ org.apache.maven.its
+ mng-8041-plugin
+
+
+
+ static-tree
+
+
+
+
+
+
+