Below dependency is for jasperreport
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>3.7.2</version>
</dependency>
Above dependency causes inclusion of jdtcore
jar inclusion.
Then I have below dependency for drools-spring
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-spring</artifactId>
<version>5.6.0.Final</version>
</dependency>
This includes ecj
jar.
Now ecj and jdtcore has java files org.eclipse.jdt.internal.compiler.CompilationResult
with different versions and hence cause runtime exception.
How can I resolve these dependency conflict.
You either need to upgrade jasperreport
version or if that's not possible then exclude the jdtcore
and include the newer version of jdtcore
as shown below:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<exclusions>
<exclusion>
<groupId>eclipse</groupId>
<artifactId>jdtcore</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>eclipse</groupId>
<artifactId>jdtcore</artifactId>
<version>3.2.0.v_658</version>
</dependency>
After this exclude ecj
jar from drools-spring
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-spring</artifactId>
<version>5.6.0.Final</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
</exclusion>
</exclusions>
</dependency>
This will resolve the classes conflict