Some ideas:
-
Maybe you could simply not inherit from the parent in that case (and declare a dependency on
base
with the exclusion). Not handy if you have lot of stuff in the parent pom. -
Another thing to test would be to declare the
mail
artifact with the version required byALL-DEPS
under thedependencyManagement
in the parent pom to force the convergence (although I’m not sure this will solve the scoping problem).
<dependencyManagement>
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>???</version><!-- put the "right" version here -->
</dependency>
</dependencies>
</dependencyManagement>
- Or you could exclude the
mail
dependency from log4j if you’re not using the features relying on it (and this is what I would do):
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
</dependency>
- Or you could revert to the version 1.2.14 of log4j instead of the heretic 1.2.15 version (why didn’t they mark the above dependencies as optional?!).