Maven Dependency Plugin
   Copyright 1999-2006 The Apache Software Foundation

   This product includes software developed at
   The Apache Software Foundation (http://www.apache.org/).
   
   Portions of this software utilize the Plexus Container, API, and
   Components.  Copyright the Codehaus. The original software is
   available from http://plexus.codehaus.org/