In a maven project there are lots of dependencies to handle – often one wants to know which version of a software comes from.

The solution to this problem is the Maven Dependency Plugin which helps you to find used/unused/declared/undeclared dependencies in your project.

In addition the plugin allows you to copy or unpack artifacts.

Maven Goals

  • dependency:copy – copies artifacts defined in the config to a specified location – details available here

  • dependency:resolve – resolves all dependencies and shows the versions

  • dependency:go-offline – resolves everything the project needs like dependencies, plugins and reports

  • dependency:analyze - parses the dependencies and shows if they are used/declared/unused/undeclared ..

  • dependency:analyze-dep-gmt - finds mismatches between resolved dependencies and those listed in the dependencyManagement section

  • dependency:tree – shows a nice dependency tree for the maven project

Examples

  • dependency:tree (old jsf-myfaces project skeleton)

    [INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'dependency'.
    [INFO]------------------------------------------------------------------------[INFO] Building hasCode.com - Faces Project
    [INFO]    task-segment: [dependency:tree][INFO]------------------------------------------------------------------------[INFO][dependency:tree][INFO] com.hascode.jsf:faces-test:war:0.0.1-SNAPSHOT
    [INFO] +- org.apache.myfaces.core:myfaces-api:jar:1.2.2:compile
    [INFO]|  \- commons-logging:commons-logging:jar:1.1.1:compile
    [INFO] +- org.apache.myfaces.core:myfaces-impl:jar:1.2.2:compile
    [INFO]|  +- commons-collections:commons-collections:jar:3.2:compile
    [INFO]|  +- commons-discovery:commons-discovery:jar:0.4:compile
    [INFO]|  +- commons-codec:commons-codec:jar:1.3:compile
    [INFO]|  +- commons-beanutils:commons-beanutils:jar:1.7.0:compile
    [INFO]|  \- commons-digester:commons-digester:jar:1.8:compile
    [INFO] +- org.apache.myfaces.tomahawk:tomahawk:jar:1.1.6:runtime
    [INFO]|  +- commons-validator:commons-validator:jar:1.3.1:runtime
    [INFO]|  +- commons-fileupload:commons-fileupload:jar:1.0:runtime
    [INFO]|  +- commons-el:commons-el:jar:1.0:runtime
    [INFO]|  +- oro:oro:jar:2.0.8:runtime
    [INFO]|  \- commons-lang:commons-lang:jar:2.1:runtime
    [INFO] +- jstl:jstl:jar:1.2:runtime
    [INFO] +- com.sun.facelets:jsf-facelets:jar:1.1.11:compile
    [INFO] \- junit:junit:jar:4.0:test[INFO]------------------------------------------------------------------------
  • dependency:analyze-dep-mgt

    [INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'dependency'.
    [INFO]------------------------------------------------------------------------[INFO] Building hasCode.com - Faces Project
    [INFO]    task-segment: [dependency:analyze-dep-mgt][INFO]------------------------------------------------------------------------[INFO][dependency:analyze-dep-mgt][INFO] Found Resolved Dependency / DependencyManagement mismatches:
    [INFO]    Nothing in DepMgt.
    [INFO]------------------------------------------------------------------------
  • dependency:resolve

    [INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'dependency'.
    [INFO]------------------------------------------------------------------------[INFO] Building A custom project using myfaces
    [INFO]    task-segment: [dependency:resolve][INFO]------------------------------------------------------------------------[INFO][dependency:resolve][INFO][INFO] The following files have been resolved:
    [INFO]    com.sun.facelets:jsf-facelets:jar:1.1.11:compile
    [INFO]    commons-beanutils:commons-beanutils:jar:1.7.0:compile
    [INFO]    commons-codec:commons-codec:jar:1.3:compile
    [INFO]    commons-collections:commons-collections:jar:3.2:compile
    [INFO]    commons-digester:commons-digester:jar:1.8:compile
    [INFO]    commons-discovery:commons-discovery:jar:0.4:compile
    [INFO]    commons-el:commons-el:jar:1.0:runtime
    [INFO]    commons-fileupload:commons-fileupload:jar:1.0:runtime
    [INFO]    commons-lang:commons-lang:jar:2.1:runtime
    [INFO]    commons-logging:commons-logging:jar:1.1.1:compile
    [INFO]    commons-validator:commons-validator:jar:1.3.1:runtime
    [INFO]    jstl:jstl:jar:1.2:runtime
    [INFO]    junit:junit:jar:4.0:test[INFO]    org.apache.myfaces.core:myfaces-api:jar:1.2.2:compile
    [INFO]    org.apache.myfaces.core:myfaces-impl:jar:1.2.2:compile
    [INFO]    org.apache.myfaces.tomahawk:tomahawk:jar:1.1.6:runtime
    [INFO]    oro:oro:jar:2.0.8:runtime
    [INFO][INFO]------------------------------------------------------------------------

Article Updates

  • 2015-03-03: Table of contents added.