You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2025/08/17 19:33:43 UTC

(maven-dependency-plugin) branch master updated: Build by Maven 4

This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new 40b7c0f8 Build by Maven 4
40b7c0f8 is described below

commit 40b7c0f84d75e611f0253eb6974d2e4c0f140f2d
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Thu Apr 25 00:24:08 2024 +0200

    Build by Maven 4
---
 .github/workflows/maven-verify.yml                 |  2 +
 src/it/projects/list-repositories/verify.groovy    |  6 +-
 src/it/projects/tree-excluded/expected-v4.txt      | 13 ++++
 src/it/projects/tree-excluded/verify.groovy        |  5 +-
 .../tree-multimodule/module-a/expected-v4.txt      | 14 ++++
 .../tree-multimodule/module-b/expected-v4.txt      | 15 ++++
 src/it/projects/tree-multimodule/test.properties   |  1 -
 src/it/projects/tree-multimodule/verify.groovy     |  7 +-
 src/it/projects/tree-scope/expected1-v4.txt        | 37 +++++++++
 src/it/projects/tree-scope/expected2-v4.txt        | 39 ++++++++++
 src/it/projects/tree-scope/invoker.properties      |  4 +-
 src/it/projects/tree-scope/test1.properties        |  1 -
 src/it/projects/tree-scope/test2.properties        |  1 -
 src/it/projects/tree-scope/verify.groovy           |  8 +-
 .../module-a/expected-v4.txt                       | 30 ++++++++
 .../module-b/expected-v4.txt                       | 31 ++++++++
 .../tree-verbose-multimodule/test.properties       |  1 -
 .../tree-verbose-multimodule/verify.groovy         |  7 +-
 src/it/projects/tree-verbose/expected-v4.txt       | 89 ++++++++++++++++++++++
 src/it/projects/tree-verbose/test.properties       | 18 -----
 src/it/projects/tree-verbose/verify.groovy         |  5 +-
 src/it/projects/tree/expected-v4.txt               | 38 +++++++++
 src/it/projects/tree/test.properties               |  1 -
 src/it/projects/tree/verify.groovy                 |  5 +-
 .../plugins/dependency/ListRepositoriesMojo.java   | 17 +++++
 25 files changed, 359 insertions(+), 36 deletions(-)

diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml
index 932827cf..ce4b500d 100644
--- a/.github/workflows/maven-verify.yml
+++ b/.github/workflows/maven-verify.yml
@@ -25,3 +25,5 @@ jobs:
   build:
     name: Verify
     uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v4
+    with:
+      maven4-enabled: true
diff --git a/src/it/projects/list-repositories/verify.groovy b/src/it/projects/list-repositories/verify.groovy
index b14fc5b4..bd311cf9 100644
--- a/src/it/projects/list-repositories/verify.groovy
+++ b/src/it/projects/list-repositories/verify.groovy
@@ -24,5 +24,7 @@ String buildLog = file.getText( "UTF-8" )
 assert buildLog.contains( 'Project remote repositories used by this build:')
 assert buildLog.contains( '* fake-remote-repository (http://localhost:2345, default, releases+snapshots)')
 assert buildLog.contains( '* sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots, default, snapshots) mirrored by mrm-maven-plugin')
-assert buildLog.contains( '* central (https://repo.maven.apache.org/maven2, default, releases) mirrored by mrm-maven-plugin')
-
+if (!mavenVersion.startsWith('4.')) {
+    // Maven 4 drop central repo from default super pom - so model doesn't have it
+    assert buildLog.contains('* central (https://repo.maven.apache.org/maven2, default, releases) mirrored by mrm-maven-plugin')
+}
diff --git a/src/it/projects/tree-excluded/expected-v4.txt b/src/it/projects/tree-excluded/expected-v4.txt
new file mode 100644
index 00000000..82cd9525
--- /dev/null
+++ b/src/it/projects/tree-excluded/expected-v4.txt
@@ -0,0 +1,13 @@
+org.apache.maven.its.dependency:test:jar:1.0-SNAPSHOT
+\- org.apache.maven:maven-project:jar:2.0.6:compile
+   +- org.apache.maven:maven-settings:jar:2.0.6:compile
+   +- org.apache.maven:maven-profile:jar:2.0.6:compile
+   +- org.apache.maven:maven-model:jar:2.0.6:compile
+   +- org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
+   |  +- org.apache.maven:maven-repository-metadata:jar:2.0.6:compile
+   |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile
+   +- org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
+   +- org.apache.maven:maven-artifact:jar:2.0.6:compile
+   \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
+      +- junit:junit:jar:3.8.1:compile
+      \- classworlds:classworlds:jar:1.1:compile
diff --git a/src/it/projects/tree-excluded/verify.groovy b/src/it/projects/tree-excluded/verify.groovy
index b79d25ba..e9d8d813 100644
--- a/src/it/projects/tree-excluded/verify.groovy
+++ b/src/it/projects/tree-excluded/verify.groovy
@@ -19,7 +19,10 @@
 
 import static org.assertj.core.api.Assertions.assertThat
 
+// Maven 4 use transitive dependency manager
+def expected = mavenVersion.startsWith('4.') ? "expected-v4.txt" : "expected.txt"
+
 assertThat(new File(basedir, "target/tree.txt"))
-        .hasSameTextualContentAs(new File(basedir, "expected.txt"))
+        .hasSameTextualContentAs(new File(basedir, expected))
 
 return true
diff --git a/src/it/projects/tree-multimodule/module-a/expected-v4.txt b/src/it/projects/tree-multimodule/module-a/expected-v4.txt
new file mode 100644
index 00000000..2d798107
--- /dev/null
+++ b/src/it/projects/tree-multimodule/module-a/expected-v4.txt
@@ -0,0 +1,14 @@
+org.apache.maven.its.dependency:tree-multimodule-module-a:jar:1.0-SNAPSHOT
+\- org.apache.maven:maven-project:jar:2.0.6:compile
+   +- org.apache.maven:maven-settings:jar:2.0.6:compile
+   +- org.apache.maven:maven-profile:jar:2.0.6:compile
+   +- org.apache.maven:maven-model:jar:2.0.6:compile
+   +- org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
+   |  +- org.apache.maven:maven-repository-metadata:jar:2.0.6:compile
+   |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile
+   +- org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
+   +- org.codehaus.plexus:plexus-utils:jar:1.4.1:compile
+   +- org.apache.maven:maven-artifact:jar:2.0.6:compile
+   \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
+      +- junit:junit:jar:3.8.1:compile
+      \- classworlds:classworlds:jar:1.1:compile
diff --git a/src/it/projects/tree-multimodule/module-b/expected-v4.txt b/src/it/projects/tree-multimodule/module-b/expected-v4.txt
new file mode 100644
index 00000000..00f930ed
--- /dev/null
+++ b/src/it/projects/tree-multimodule/module-b/expected-v4.txt
@@ -0,0 +1,15 @@
+org.apache.maven.its.dependency:tree-multimodule-module-b:jar:1.0-SNAPSHOT
+\- org.apache.maven.its.dependency:tree-multimodule-module-a:jar:1.0-SNAPSHOT:compile
+   \- org.apache.maven:maven-project:jar:2.0.6:compile
+      +- org.apache.maven:maven-settings:jar:2.0.6:compile
+      +- org.apache.maven:maven-profile:jar:2.0.6:compile
+      +- org.apache.maven:maven-model:jar:2.0.6:compile
+      +- org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
+      |  +- org.apache.maven:maven-repository-metadata:jar:2.0.6:compile
+      |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile
+      +- org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
+      +- org.codehaus.plexus:plexus-utils:jar:1.4.1:compile
+      +- org.apache.maven:maven-artifact:jar:2.0.6:compile
+      \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
+         +- junit:junit:jar:3.8.1:compile
+         \- classworlds:classworlds:jar:1.1:compile
diff --git a/src/it/projects/tree-multimodule/test.properties b/src/it/projects/tree-multimodule/test.properties
index 1a148045..2a312e22 100644
--- a/src/it/projects/tree-multimodule/test.properties
+++ b/src/it/projects/tree-multimodule/test.properties
@@ -16,4 +16,3 @@
 # under the License.
 
 outputFile = target/tree.txt
-maven.resolver.dependencyManagerTransitivity=false
diff --git a/src/it/projects/tree-multimodule/verify.groovy b/src/it/projects/tree-multimodule/verify.groovy
index 868ac9d9..03cfc779 100644
--- a/src/it/projects/tree-multimodule/verify.groovy
+++ b/src/it/projects/tree-multimodule/verify.groovy
@@ -19,13 +19,16 @@
 
 import static org.assertj.core.api.Assertions.assertThat
 
+// Maven 4 use transitive dependency manager
+def expected = mavenVersion.startsWith('4.') ? "expected-v4.txt" : "expected.txt"
+
 assertThat(new File(basedir, "target/tree.txt"))
         .hasSameTextualContentAs(new File(basedir, "expected.txt"))
 
 assertThat(new File(basedir, "module-a/target/tree.txt"))
-        .hasSameTextualContentAs(new File(basedir, "module-a/expected.txt"))
+        .hasSameTextualContentAs(new File(basedir, "module-a/" + expected))
 
 assertThat(new File(basedir, "module-b/target/tree.txt"))
-        .hasSameTextualContentAs(new File(basedir, "module-b/expected.txt"))
+        .hasSameTextualContentAs(new File(basedir, "module-b/" + expected))
 
 return true;
diff --git a/src/it/projects/tree-scope/expected1-v4.txt b/src/it/projects/tree-scope/expected1-v4.txt
new file mode 100644
index 00000000..cbec48bd
--- /dev/null
+++ b/src/it/projects/tree-scope/expected1-v4.txt
@@ -0,0 +1,37 @@
+org.apache.maven.its.dependency:test:jar:1.0-SNAPSHOT
+\- org.apache.maven:maven-core:jar:3.6.3:compile
+   +- org.apache.maven:maven-model:jar:3.6.3:compile
+   +- org.apache.maven:maven-settings:jar:3.6.3:compile
+   +- org.apache.maven:maven-settings-builder:jar:3.6.3:compile
+   |  +- org.codehaus.plexus:plexus-interpolation:jar:1.25:compile
+   |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:compile
+   |     \- org.sonatype.plexus:plexus-cipher:jar:1.7:compile
+   +- org.apache.maven:maven-builder-support:jar:3.6.3:compile
+   +- org.apache.maven:maven-repository-metadata:jar:3.6.3:compile
+   +- org.apache.maven:maven-artifact:jar:3.6.3:compile
+   +- org.apache.maven:maven-plugin-api:jar:3.6.3:compile
+   +- org.apache.maven:maven-model-builder:jar:3.6.3:compile
+   +- org.apache.maven:maven-resolver-provider:jar:3.6.3:compile
+   +- org.apache.maven.resolver:maven-resolver-impl:jar:1.4.1:compile
+   +- org.apache.maven.resolver:maven-resolver-api:jar:1.4.1:compile
+   +- org.apache.maven.resolver:maven-resolver-spi:jar:1.4.1:compile
+   +- org.apache.maven.resolver:maven-resolver-util:jar:1.4.1:compile
+   +- org.apache.maven.shared:maven-shared-utils:jar:3.2.1:compile
+   |  \- commons-io:commons-io:jar:2.5:compile
+   +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:compile
+   |  \- javax.enterprise:cdi-api:jar:1.0:compile
+   |     \- javax.annotation:jsr250-api:jar:1.0:compile
+   +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:compile
+   +- com.google.inject:guice:jar:no_aop:4.2.1:compile
+   |  +- aopalliance:aopalliance:jar:1.0:compile
+   |  \- com.google.guava:guava:jar:25.1-android:compile
+   |     +- com.google.code.findbugs:jsr305:jar:3.0.1:compile
+   |     +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile
+   |     +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile
+   |     +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
+   |     \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
+   +- javax.inject:javax.inject:jar:1:compile
+   +- org.codehaus.plexus:plexus-utils:jar:3.2.1:compile
+   +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile
+   +- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:compile
+   \- org.apache.commons:commons-lang3:jar:3.8.1:compile
diff --git a/src/it/projects/tree-scope/expected2-v4.txt b/src/it/projects/tree-scope/expected2-v4.txt
new file mode 100644
index 00000000..1b7e59ae
--- /dev/null
+++ b/src/it/projects/tree-scope/expected2-v4.txt
@@ -0,0 +1,39 @@
+org.apache.maven.its.dependency:test:jar:1.0-SNAPSHOT
++- org.apache.maven:maven-core:jar:3.6.3:compile
+|  +- org.apache.maven:maven-model:jar:3.6.3:compile
+|  +- org.apache.maven:maven-settings:jar:3.6.3:compile
+|  +- org.apache.maven:maven-settings-builder:jar:3.6.3:compile
+|  |  +- org.codehaus.plexus:plexus-interpolation:jar:1.25:compile
+|  |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:compile
+|  |     \- org.sonatype.plexus:plexus-cipher:jar:1.7:compile
+|  +- org.apache.maven:maven-builder-support:jar:3.6.3:compile
+|  +- org.apache.maven:maven-repository-metadata:jar:3.6.3:compile
+|  +- org.apache.maven:maven-artifact:jar:3.6.3:compile
+|  +- org.apache.maven:maven-plugin-api:jar:3.6.3:compile
+|  +- org.apache.maven:maven-model-builder:jar:3.6.3:compile
+|  +- org.apache.maven:maven-resolver-provider:jar:3.6.3:compile
+|  +- org.apache.maven.resolver:maven-resolver-impl:jar:1.4.1:compile
+|  +- org.apache.maven.resolver:maven-resolver-api:jar:1.4.1:compile
+|  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.4.1:compile
+|  +- org.apache.maven.resolver:maven-resolver-util:jar:1.4.1:compile
+|  +- org.apache.maven.shared:maven-shared-utils:jar:3.2.1:compile
+|  |  \- commons-io:commons-io:jar:2.5:compile
+|  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:compile
+|  |  \- javax.enterprise:cdi-api:jar:1.0:compile
+|  |     \- javax.annotation:jsr250-api:jar:1.0:compile
+|  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:compile
+|  +- com.google.inject:guice:jar:no_aop:4.2.1:compile
+|  |  +- aopalliance:aopalliance:jar:1.0:compile
+|  |  \- com.google.guava:guava:jar:25.1-android:compile
+|  |     +- com.google.code.findbugs:jsr305:jar:3.0.1:compile
+|  |     +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile
+|  |     +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile
+|  |     +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
+|  |     \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
+|  +- javax.inject:javax.inject:jar:1:compile
+|  +- org.codehaus.plexus:plexus-utils:jar:3.2.1:compile
+|  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile
+|  +- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:compile
+|  \- org.apache.commons:commons-lang3:jar:3.8.1:compile
+\- org.slf4j:slf4j-simple:jar:2.0.13:test
+   \- org.slf4j:slf4j-api:jar:2.0.13:compile
diff --git a/src/it/projects/tree-scope/invoker.properties b/src/it/projects/tree-scope/invoker.properties
index 2535673a..0999b3e4 100644
--- a/src/it/projects/tree-scope/invoker.properties
+++ b/src/it/projects/tree-scope/invoker.properties
@@ -16,7 +16,7 @@
 # under the License.
 
 invoker.goals.1 = ${project.groupId}:${project.artifactId}:${project.version}:tree
-invoker.systemPropertiesFile.1 = test1.properties
+invoker.userPropertiesFile.1 = test1.properties
 
 invoker.goals.2 = ${project.groupId}:${project.artifactId}:${project.version}:tree
-invoker.systemPropertiesFile.2 = test2.properties
+invoker.userPropertiesFile.2 = test2.properties
diff --git a/src/it/projects/tree-scope/test1.properties b/src/it/projects/tree-scope/test1.properties
index 4f3ff1dc..42b6c429 100644
--- a/src/it/projects/tree-scope/test1.properties
+++ b/src/it/projects/tree-scope/test1.properties
@@ -17,4 +17,3 @@
 
 outputFile = target/tree1.txt
 scope = compile
-maven.resolver.dependencyManagerTransitivity = false
diff --git a/src/it/projects/tree-scope/test2.properties b/src/it/projects/tree-scope/test2.properties
index e9d6c7d0..784d605e 100644
--- a/src/it/projects/tree-scope/test2.properties
+++ b/src/it/projects/tree-scope/test2.properties
@@ -17,4 +17,3 @@
 
 outputFile = target/tree2.txt
 scope = test
-maven.resolver.dependencyManagerTransitivity = false
diff --git a/src/it/projects/tree-scope/verify.groovy b/src/it/projects/tree-scope/verify.groovy
index c6ed2242..521bd47b 100644
--- a/src/it/projects/tree-scope/verify.groovy
+++ b/src/it/projects/tree-scope/verify.groovy
@@ -20,10 +20,14 @@
 
 import static org.assertj.core.api.Assertions.assertThat
 
+// Maven 4 use transitive dependency manager
+def expected1 = mavenVersion.startsWith('4.') ? "expected1-v4.txt" : "expected1.txt"
+def expected2 = mavenVersion.startsWith('4.') ? "expected2-v4.txt" : "expected2.txt"
+
 assertThat(new File(basedir, "target/tree1.txt"))
-        .hasSameTextualContentAs(new File(basedir, "expected1.txt"))
+        .hasSameTextualContentAs(new File(basedir, expected1))
 
 assertThat(new File(basedir, "target/tree2.txt"))
-        .hasSameTextualContentAs(new File(basedir, "expected2.txt"))
+        .hasSameTextualContentAs(new File(basedir, expected2))
 
 return true
\ No newline at end of file
diff --git a/src/it/projects/tree-verbose-multimodule/module-a/expected-v4.txt b/src/it/projects/tree-verbose-multimodule/module-a/expected-v4.txt
new file mode 100644
index 00000000..02773103
--- /dev/null
+++ b/src/it/projects/tree-verbose-multimodule/module-a/expected-v4.txt
@@ -0,0 +1,30 @@
+org.apache.maven.its.dependency:tree-multimodule-module-a:jar:1.0-SNAPSHOT
+\- org.apache.maven:maven-project:jar:2.0.6:compile
+   +- org.apache.maven:maven-settings:jar:2.0.6:compile
+   |  +- (org.apache.maven:maven-model:jar:2.0.6:compile - version managed from 2.0.6; omitted for duplicate)
+   |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+   |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+   +- org.apache.maven:maven-profile:jar:2.0.6:compile
+   |  +- (org.apache.maven:maven-model:jar:2.0.6:compile - version managed from 2.0.6; omitted for duplicate)
+   |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+   |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+   +- org.apache.maven:maven-model:jar:2.0.6:compile
+   |  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+   +- org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
+   |  +- org.apache.maven:maven-repository-metadata:jar:2.0.6:compile (version managed from 2.0.6)
+   |  |  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+   |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+   |  +- (org.apache.maven:maven-artifact:jar:2.0.6:compile - version managed from 2.0.6; omitted for duplicate)
+   |  +- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+   |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile (version managed from 1.0-beta-2)
+   |     \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.0.4; omitted for duplicate)
+   +- org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
+   |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+   |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+   +- org.codehaus.plexus:plexus-utils:jar:1.4.1:compile
+   +- org.apache.maven:maven-artifact:jar:2.0.6:compile
+   |  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+   \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
+      +- junit:junit:jar:3.8.1:compile
+      +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.0.4; omitted for duplicate)
+      \- classworlds:classworlds:jar:1.1:compile (version managed from 1.1-alpha-2)
diff --git a/src/it/projects/tree-verbose-multimodule/module-b/expected-v4.txt b/src/it/projects/tree-verbose-multimodule/module-b/expected-v4.txt
new file mode 100644
index 00000000..ffc3a86c
--- /dev/null
+++ b/src/it/projects/tree-verbose-multimodule/module-b/expected-v4.txt
@@ -0,0 +1,31 @@
+org.apache.maven.its.dependency:tree-multimodule-module-b:jar:1.0-SNAPSHOT
+\- org.apache.maven.its.dependency:tree-multimodule-module-a:jar:1.0-SNAPSHOT:compile
+   \- org.apache.maven:maven-project:jar:2.0.6:compile
+      +- org.apache.maven:maven-settings:jar:2.0.6:compile
+      |  +- (org.apache.maven:maven-model:jar:2.0.6:compile - version managed from 2.0.6; omitted for duplicate)
+      |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+      |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+      +- org.apache.maven:maven-profile:jar:2.0.6:compile
+      |  +- (org.apache.maven:maven-model:jar:2.0.6:compile - version managed from 2.0.6; omitted for duplicate)
+      |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+      |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+      +- org.apache.maven:maven-model:jar:2.0.6:compile
+      |  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+      +- org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
+      |  +- org.apache.maven:maven-repository-metadata:jar:2.0.6:compile (version managed from 2.0.6)
+      |  |  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+      |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+      |  +- (org.apache.maven:maven-artifact:jar:2.0.6:compile - version managed from 2.0.6; omitted for duplicate)
+      |  +- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+      |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile (version managed from 1.0-beta-2)
+      |     \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.0.4; omitted for duplicate)
+      +- org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
+      |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+      |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+      +- org.codehaus.plexus:plexus-utils:jar:1.4.1:compile
+      +- org.apache.maven:maven-artifact:jar:2.0.6:compile
+      |  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+      \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
+         +- junit:junit:jar:3.8.1:compile
+         +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.0.4; omitted for duplicate)
+         \- classworlds:classworlds:jar:1.1:compile (version managed from 1.1-alpha-2)
diff --git a/src/it/projects/tree-verbose-multimodule/test.properties b/src/it/projects/tree-verbose-multimodule/test.properties
index 1a148045..2a312e22 100644
--- a/src/it/projects/tree-verbose-multimodule/test.properties
+++ b/src/it/projects/tree-verbose-multimodule/test.properties
@@ -16,4 +16,3 @@
 # under the License.
 
 outputFile = target/tree.txt
-maven.resolver.dependencyManagerTransitivity=false
diff --git a/src/it/projects/tree-verbose-multimodule/verify.groovy b/src/it/projects/tree-verbose-multimodule/verify.groovy
index 868ac9d9..03cfc779 100644
--- a/src/it/projects/tree-verbose-multimodule/verify.groovy
+++ b/src/it/projects/tree-verbose-multimodule/verify.groovy
@@ -19,13 +19,16 @@
 
 import static org.assertj.core.api.Assertions.assertThat
 
+// Maven 4 use transitive dependency manager
+def expected = mavenVersion.startsWith('4.') ? "expected-v4.txt" : "expected.txt"
+
 assertThat(new File(basedir, "target/tree.txt"))
         .hasSameTextualContentAs(new File(basedir, "expected.txt"))
 
 assertThat(new File(basedir, "module-a/target/tree.txt"))
-        .hasSameTextualContentAs(new File(basedir, "module-a/expected.txt"))
+        .hasSameTextualContentAs(new File(basedir, "module-a/" + expected))
 
 assertThat(new File(basedir, "module-b/target/tree.txt"))
-        .hasSameTextualContentAs(new File(basedir, "module-b/expected.txt"))
+        .hasSameTextualContentAs(new File(basedir, "module-b/" + expected))
 
 return true;
diff --git a/src/it/projects/tree-verbose/expected-v4.txt b/src/it/projects/tree-verbose/expected-v4.txt
new file mode 100644
index 00000000..e0095ea9
--- /dev/null
+++ b/src/it/projects/tree-verbose/expected-v4.txt
@@ -0,0 +1,89 @@
+org.apache.maven.its.dependency:tree-verbose:jar:1.0-SNAPSHOT
++- org.apache.maven:maven-project:jar:2.0.6:compile
+|  +- org.apache.maven:maven-settings:jar:2.0.6:compile
+|  |  +- (org.apache.maven:maven-model:jar:2.0.5:test - version managed from 2.0.6; scope managed from compile; omitted for conflict with 2.0.7)
+|  |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+|  |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+|  +- (org.apache.maven:maven-profile:jar:2.0.6:compile - omitted for conflict with 2.0.4)
+|  +- (org.apache.maven:maven-model:jar:2.0.5:test - version managed from 2.0.6; scope managed from compile; omitted for conflict with 2.0.7)
+|  +- org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
+|  |  +- org.apache.maven:maven-repository-metadata:jar:2.0.6:compile (version managed from 2.0.6)
+|  |  |  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+|  |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+|  |  +- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+|  |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile (version managed from 1.0-beta-2)
+|  |     \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.0.4; omitted for duplicate)
+|  +- org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
+|  |  +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.4.1; omitted for duplicate)
+|  |  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile - version managed from 1.0-alpha-9-stable-1; omitted for duplicate)
+|  +- org.codehaus.plexus:plexus-utils:jar:1.4.1:compile
+|  \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
+|     +- junit:junit:jar:3.8.1:compile
+|     +- (org.codehaus.plexus:plexus-utils:jar:1.4.1:compile - version managed from 1.0.4; omitted for duplicate)
+|     \- classworlds:classworlds:jar:1.1:compile (version managed from 1.1-alpha-2)
++- org.apache.maven:maven-profile:jar:2.0.4:test (scope not updated to compile)
+|  +- (org.apache.maven:maven-model:jar:2.0.5:test - version managed from 2.0.4; scope managed from compile; omitted for conflict with 2.0.7)
+|  +- (org.codehaus.plexus:plexus-utils:jar:1.1:test - omitted for conflict with 1.4.1)
+|  \- (org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:test - omitted for conflict with 1.0-alpha-9-stable-1)
++- org.apache.maven:maven-model:jar:2.0.7:runtime
+|  \- (org.codehaus.plexus:plexus-utils:jar:1.4.1:runtime - omitted for duplicate)
+\- org.apache.xmlgraphics:batik-bridge:jar:1.7:compile
+   +- org.apache.xmlgraphics:batik-anim:jar:1.7:compile
+   |  +- (org.apache.xmlgraphics:batik-awt-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-dom:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-ext:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-parser:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-svg-dom:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   |  \- (xml-apis:xml-apis-ext:jar:1.3.04:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-awt-util:jar:1.7:compile
+   |  \- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-css:jar:1.7:compile
+   |  +- (org.apache.xmlgraphics:batik-ext:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   |  \- (xml-apis:xml-apis-ext:jar:1.3.04:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-dom:jar:1.7:compile
+   |  +- (org.apache.xmlgraphics:batik-css:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-ext:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-xml:jar:1.7:compile - omitted for duplicate)
+   |  +- (xalan:xalan:jar:2.6.0:compile - omitted for duplicate)
+   |  +- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   |  \- (xml-apis:xml-apis-ext:jar:1.3.04:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-ext:jar:1.7:compile
+   |  \- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-gvt:jar:1.7:compile
+   |  +- (org.apache.xmlgraphics:batik-awt-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   |  \- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-parser:jar:1.7:compile
+   |  +- (org.apache.xmlgraphics:batik-awt-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   |  \- (org.apache.xmlgraphics:batik-xml:jar:1.7:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-script:jar:1.7:compile
+   |  +- (org.apache.xmlgraphics:batik-dom:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-ext:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-svg-dom:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   |  +- org.apache.xmlgraphics:batik-js:jar:1.7:compile
+   |  |  \- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   |  \- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-svg-dom:jar:1.7:compile
+   |  +- (org.apache.xmlgraphics:batik-anim:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-awt-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-css:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-dom:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-ext:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-parser:jar:1.7:compile - omitted for duplicate)
+   |  +- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   |  +- (xml-apis:xml-apis:jar:1.3.04:compile - omitted for duplicate)
+   |  \- (xml-apis:xml-apis-ext:jar:1.3.04:compile - omitted for duplicate)
+   +- org.apache.xmlgraphics:batik-util:jar:1.7:compile
+   +- org.apache.xmlgraphics:batik-xml:jar:1.7:compile
+   |  \- (org.apache.xmlgraphics:batik-util:jar:1.7:compile - omitted for duplicate)
+   +- xalan:xalan:jar:2.6.0:compile
+   |  \- (xml-apis:xml-apis:jar:1.0.b2:compile - omitted for conflict with 1.3.04)
+   +- xml-apis:xml-apis:jar:1.3.04:compile
+   \- xml-apis:xml-apis-ext:jar:1.3.04:compile
diff --git a/src/it/projects/tree-verbose/test.properties b/src/it/projects/tree-verbose/test.properties
deleted file mode 100644
index 08bf0c03..00000000
--- a/src/it/projects/tree-verbose/test.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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.
-
-maven.resolver.dependencyManagerTransitivity=false
diff --git a/src/it/projects/tree-verbose/verify.groovy b/src/it/projects/tree-verbose/verify.groovy
index b79d25ba..e9d8d813 100644
--- a/src/it/projects/tree-verbose/verify.groovy
+++ b/src/it/projects/tree-verbose/verify.groovy
@@ -19,7 +19,10 @@
 
 import static org.assertj.core.api.Assertions.assertThat
 
+// Maven 4 use transitive dependency manager
+def expected = mavenVersion.startsWith('4.') ? "expected-v4.txt" : "expected.txt"
+
 assertThat(new File(basedir, "target/tree.txt"))
-        .hasSameTextualContentAs(new File(basedir, "expected.txt"))
+        .hasSameTextualContentAs(new File(basedir, expected))
 
 return true
diff --git a/src/it/projects/tree/expected-v4.txt b/src/it/projects/tree/expected-v4.txt
new file mode 100644
index 00000000..91703010
--- /dev/null
+++ b/src/it/projects/tree/expected-v4.txt
@@ -0,0 +1,38 @@
+org.apache.maven.its.dependency:test:jar:1.0-SNAPSHOT
++- org.apache.maven:maven-core:jar:3.6.3:compile
+|  +- org.apache.maven:maven-model:jar:3.6.3:compile
+|  +- org.apache.maven:maven-settings:jar:3.6.3:compile
+|  +- org.apache.maven:maven-settings-builder:jar:3.6.3:compile
+|  |  +- org.codehaus.plexus:plexus-interpolation:jar:1.25:compile
+|  |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:compile
+|  |     \- org.sonatype.plexus:plexus-cipher:jar:1.7:compile
+|  +- org.apache.maven:maven-builder-support:jar:3.6.3:compile
+|  +- org.apache.maven:maven-repository-metadata:jar:3.6.3:compile
+|  +- org.apache.maven:maven-artifact:jar:3.6.3:compile
+|  +- org.apache.maven:maven-plugin-api:jar:3.6.3:compile
+|  +- org.apache.maven:maven-model-builder:jar:3.6.3:compile
+|  +- org.apache.maven:maven-resolver-provider:jar:3.6.3:compile
+|  |  \- org.slf4j:slf4j-api:jar:1.7.29:compile
+|  +- org.apache.maven.resolver:maven-resolver-impl:jar:1.4.1:compile
+|  +- org.apache.maven.resolver:maven-resolver-api:jar:1.4.1:compile
+|  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.4.1:compile
+|  +- org.apache.maven.resolver:maven-resolver-util:jar:1.4.1:compile
+|  +- org.apache.maven.shared:maven-shared-utils:jar:3.2.1:compile
+|  |  \- commons-io:commons-io:jar:2.5:compile
+|  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:compile
+|  |  \- javax.enterprise:cdi-api:jar:1.0:compile
+|  |     \- javax.annotation:jsr250-api:jar:1.0:compile
+|  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:compile
+|  +- com.google.inject:guice:jar:no_aop:4.2.1:compile
+|  |  +- aopalliance:aopalliance:jar:1.0:compile
+|  |  \- com.google.guava:guava:jar:25.1-android:compile
+|  |     +- com.google.code.findbugs:jsr305:jar:3.0.1:compile
+|  |     +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile
+|  |     +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile
+|  |     +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
+|  |     \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
+|  +- javax.inject:javax.inject:jar:1:compile
+|  +- org.codehaus.plexus:plexus-utils:jar:3.2.1:compile
+|  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile
+|  \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:compile
+\- org.apache.commons:commons-lang3:jar:3.14.0:compile (optional)
\ No newline at end of file
diff --git a/src/it/projects/tree/test.properties b/src/it/projects/tree/test.properties
index 2cc9c4a0..2a312e22 100644
--- a/src/it/projects/tree/test.properties
+++ b/src/it/projects/tree/test.properties
@@ -16,4 +16,3 @@
 # under the License.
 
 outputFile = target/tree.txt
-maven.resolver.dependencyManagerTransitivity = false
diff --git a/src/it/projects/tree/verify.groovy b/src/it/projects/tree/verify.groovy
index b79d25ba..e9d8d813 100644
--- a/src/it/projects/tree/verify.groovy
+++ b/src/it/projects/tree/verify.groovy
@@ -19,7 +19,10 @@
 
 import static org.assertj.core.api.Assertions.assertThat
 
+// Maven 4 use transitive dependency manager
+def expected = mavenVersion.startsWith('4.') ? "expected-v4.txt" : "expected.txt"
+
 assertThat(new File(basedir, "target/tree.txt"))
-        .hasSameTextualContentAs(new File(basedir, "expected.txt"))
+        .hasSameTextualContentAs(new File(basedir, expected))
 
 return true
diff --git a/src/main/java/org/apache/maven/plugins/dependency/ListRepositoriesMojo.java b/src/main/java/org/apache/maven/plugins/dependency/ListRepositoriesMojo.java
index 07cd668c..01b9cc21 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/ListRepositoriesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/ListRepositoriesMojo.java
@@ -99,6 +99,7 @@ public class ListRepositoriesMojo extends AbstractDependencyMojo {
                 @Override
                 public boolean visitEnter(DependencyNode node) {
                     repositories.addAll(node.getRepositories());
+                    debugLogNodeRepo(node);
                     return true;
                 }
 
@@ -131,6 +132,22 @@ public class ListRepositoriesMojo extends AbstractDependencyMojo {
         }
     }
 
+    private void debugLogNodeRepo(DependencyNode node) {
+        if (!getLog().isDebugEnabled()) {
+            return;
+        }
+
+        getLog().debug("Node: " + node + " resolved from:");
+        node.getRepositories().forEach(repo -> {
+            if (repo.getMirroredRepositories().isEmpty()) {
+                getLog().debug(" - " + repo);
+            } else {
+                getLog().debug(" - " + repo + " as mirror for:");
+                repo.getMirroredRepositories().forEach(mrepo -> getLog().debug("    - " + mrepo));
+            }
+        });
+    }
+
     private void prepareRemoteMirrorRepositoriesList(
             StringBuilder message, Collection<RemoteRepository> remoteProjectRepositories) {