Uploaded image for project: 'Maven Shared Components'
  1. Maven Shared Components
  2. MSHARED-84

dependency:tree fails to show all dependencies


    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Incomplete
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: maven-dependency-tree
    • Labels:
    • Environment:
      Linux (Ubuntu 8.10), i386, java version "1.6.0_10", Java(TM) SE Runtime Environment (build 1.6.0_10-b33), Java HotSpot(TM) Server VM (build 11.0-b15, mixed mode), Maven 2.0.9


      After strugling with xerces 1.4.0 sneaking onto my classpath whenever I ran mvn eclipse:eclipse I was asked to submit the minimal pom which recreates the problem.

      The dependency in my original project which caused the problem is an artifact developed by us, which has a dependency to Castor 1.1.1. Castor has a direct dependency to xerces 1.4.0 which is visible when running dependency:tree on the ijcommons-distribution project (which is our local artifact). The problem arises when we run dependency:tree on the initial project, which has a dependency to ijcommons-distribution - then the dependency to castor and xerces is never shown, even if xerces is included on the classpath.

      Attached is the 3 poms I used to produce the problem.

      "mvn dependency:tree | grep xerces" on the project using "original-problem-pom.xml", gives the following output:

      [INFO] |     |  +- xerces:xmlParserAPIs:jar:2.6.2:compile
      [INFO] |     |  \- xerces:xercesImpl:jar:2.6.2:compile
      [INFO] |  \- xerces:dom3-xml-apis:jar:1.0:compile

      "mvn dependency:tree" on the project using "ijcommons-distribution-pom.xml", gives the following output:

      [INFO] [dependency:tree]
      [INFO] no.integrasco.commons:ijcommons-distribution:jar:0.5-SNAPSHOT
      [INFO] +- junit:junit:jar:4.4:test
      [INFO] +- ch.ethz.ganymed:ganymed-ssh2:jar:build210:compile
      [INFO] +- commons-httpclient:commons-httpclient:jar:3.1:compile
      [INFO] |  \- commons-codec:commons-codec:jar:1.2:compile
      [INFO] +- org.codehaus.castor:castor:jar:1.1.1:compile
      [INFO] |  +- cglib:cglib-full:jar:2.0.2:compile
      [INFO] |  +- javax.transaction:jta:jar:1.0.1B:compile
      [INFO] |  \- xerces:xerces:jar:1.4.0:compile
      [INFO] +- commons-logging:commons-logging:jar:1.1.1:compile
      [INFO] \- log4j:log4j:jar:1.2.14:test (scope not updated to compile)

      By adding every single dependency of original-problem-pom.xml to minimal-reproduce-pom.xml I confirmed that ijcommons-distribution.xml was the only dependency adding xerces 1.4.0 to the classpath.

      To my understanding xerces-1.4.0 should then also appear on the classpath of the project using original-problem-pom.xml?

      The POM of Castor version 1.1.1 is also attached.


        1. castor-1.1.1.pom
          10 kB
          Jaran Nilsen
        2. ijcommons-distribution-pom.xml
          2 kB
          Jaran Nilsen
        3. original-problem-pom.xml
          8 kB
          Jaran Nilsen
        4. minimal-reproduce-pom.xml
          0.9 kB
          Jaran Nilsen



            • Assignee:
              karbo Jaran Nilsen
            • Votes:
              0 Vote for this issue
              3 Start watching this issue


              • Created: