Strange Maven2 transitive dependency resolution problem:
project A depends on project B (without exclusions) and C (excluding jdom)
project B depends on JAXEN, which depends on JDom
I would expect that project A would have JDom as dependency, like this:
# mvn dependency:tree -Dincludes=:jdom
[dependency:tree]
com.packaging:A:jar:5.0-SNAPSHOT
\- com.p:B:jar:5.0-SNAPSHOT:compile
\- jaxen:jaxen:jar:1.1-beta-9:compile
\- jdom:jdom:jar:1.0:compile
However, I get an empty tree.
If I remove from project A its dependency on project C:
<!--
<dependency>
<groupId>com.p</groupId>
<artifactId>C</artifactId>
<version>5.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
</exclusion>
</exclusions>
</dependency>
-->
Then I get what I would expect: a dependency on JDom via project B.
Why does that happen?
If I try the same thing on other machines, the dependency on JDom always appears.
I'm using Maven 2.0.8