Manage dependencies with the Maven Dependency Plugin

April 4th, 2010 by

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] ------------------------------------------------------------------------

Resources

Article Updates

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

    Tags: , ,

    Search
    Tags
    Categories