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/