How to Quickly Detect and Resolve Maven Dependency Conflicts
This guide shows how to view a Maven project's dependency tree using IDEA, the mvn command, or the Maven Helper plugin, identify version conflicts, and resolve them either by adding exclusion entries or by enforcing versions through dependencyManagement, with concrete code examples and screenshots.
1. View Dependency Tree
Method 1: IDEA built‑in Maven tool
Open the Maven tool window (Alt+Shift+M → View → Maven), expand the Dependencies node of your project. The tree displays all dependencies; conflicted JARs appear in gray or red, and hovering shows the originating dependency.
Method 2: Command line
Run mvn dependency:tree in the project root. The output prints the full dependency hierarchy. Add -Dincludes=org.springframework to filter the tree.
mvn dependency:tree [INFO] org.example:dependency-test:jar:1.0-SNAPSHOT
[INFO] +- org.springframework:spring-webmvc:jar:6.0.9:compile
[INFO] | +- org.springframework:spring-beans:jar:6.0.9:compile
[INFO] | +- org.springframework:spring-context:jar:6.0.9:compile
[INFO] | +- org.springframework:spring-core:jar:6.0.9:compile
[INFO] | | \- org.springframework:spring-jcl:jar:6.0.9:compile
[INFO] | +- org.springframework:spring-expression:jar:6.0.9:compile
[INFO] | \- org.springframework:spring-web:jar:6.0.9:compile
[INFO] \- org.springframework:spring-aop:jar:5.3.23:compileMethod 3: Maven Helper plugin (recommended)
Install the “Maven Helper” plugin from the IDEA marketplace. Open pom.xml; a “Dependency Analyzer” tab appears, allowing one‑click view of the tree, highlighting conflicts, and right‑click to exclude a dependency.
2. Identify Conflicting JARs
Search the tree for the same groupId + artifactId with different versions, e.g.
org.springframework:spring-beans:6.0.9
org.springframework:spring-beans:5.3.23 (omitted for conflict)Maven selects the version that appears closest to the project; other versions are marked as omitted.
3. Resolve Conflicts
Option A – Exclusion : add an <exclusion> block to the upstream dependency that brings the unwanted version.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.9</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>Option B – Dependency Management : declare the desired version in a <dependencyManagement> section to force all usages to that version.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.23</version>
</dependency>
</dependencies>
</dependencyManagement>4. Summary
Use IDEA’s built‑in view or mvn dependency:tree to inspect the dependency graph, Maven Helper for visual conflict highlighting, then resolve conflicts by adding exclusion entries or by enforcing a version in dependencyManagement.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
