Dependency Conflict Resolution
About
How Do Dependency Conflicts Occur?
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>What Happens Internally?
What Happens If Two Versions Are Declared?
Maven’s Conflict Resolution Strategy
1. Nearest-Wins Strategy (Dependency Mediation)
2. Dependency Tree Analysis
3. Forcing a Specific Version (Dependency Management)
4. Using Exclusions to Remove Unwanted Dependencies
5. Using a BOM (Bill of Materials)
Can We Force Two Versions in the Same Project?
Solution 1: Shading (Relocating Dependencies)
Solution 2: Isolating Dependencies in Different Classloaders
Last updated