Friday, February 4, 2011

In Maven 2, how do I know from which dependency comes a transitive dependency ?

I would like to know which dependency described in my pom.xml brings a transitive dependency in my target directory.

To be more precise, I have the library "poi-2.5.1-final-20040804.jar" in my WEB-INF/lib directory and I would like to know which dependency in my pom.xml brings that.

  • Using the Maven Dependency Plugin:

    mvn dependency:tree
    
    From David Crow
  • If you run maven with "-x" switch, it will print out plenty of diagnostics, I guess the relevant dependency path can be picked up from there.

  • To add to @David Crow, here's a dependency:tree example from the Maven site:

    mvn dependency:tree -Dincludes=velocity:velocity
    

    might output

    [INFO] [dependency:tree]
    [INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
    [INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
    [INFO]    \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
    [INFO]       \- velocity:velocity:jar:1.4:compile
    
    From A. Rex
  • The dependency information is also included in the Project Information/Dependencies report if you have maven generate a site for the project, using mvn site.

  • If you use eclipse and the m2eclipse plugin (http://m2eclipse.sonatype.org) then there is a graphical version of dependency tree where you can filter by scope etc.

    From Brian Fox

0 comments:

Post a Comment