title: Interpreting "omitted for conflict" in maven 2 dependency tree
body: <p>This is a dependency tree generated by Maven 2.2.1 with
  <code>mvn -o dependency:tree -Dverbose -Dincludes=log4j</code></p>
  
  <pre><code>[INFO] [dependency:tree {execution: default-cli}]
  [INFO] com.openboxes.renderingservice:common:jar:1.0
  [INFO] +- org.springframework:spring:jar:2.0.4:compile
  [INFO] |  \- commons-logging:commons-logging:jar:1.1:compile
  [INFO] |     \- log4j:log4j:jar:1.2.12:compile
  [INFO] \- it.mycompany.portal:server:jar:1.5-SNAPSHOT:compile
  [INFO]    \- org.slf4j:slf4j-log4j12:jar:1.1.0:compile
  [INFO]       \- (log4j:log4j:jar:1.2.13:compile - omitted for conflict with 1.2.12)
  </code></pre>
  
  <p>As you can see log4j v1.2.12 is preferred over v1.2.13.</p>
  
  <p>I know that "Maven resolves version conflicts with a nearest-wins strategy" (see <a href="http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html" rel="noreferrer">http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html</a>) but these two dependencies seem to be at the same distance (two nesting levels, am I wrong?) so I expect that the most recent one is used.</p>
  
  <p>Can someone explain this result?</p>
  
  <p>Yes, log4j is not explicitly declared in this POM (and I think it should be), but I would like to better understand the way Maven works.</p>
  
  <p>Thx</p>