Using Maven to download dependencies to a directory on the command line
java, maven, maven-3
Solution
The first command almost gets you what you need - the POM of the dependency in question. Once you have that, you should not need a further project POM to run `copy:dependencies`:
Here's an example:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.7:get -DgroupId=org.jclouds.provider -DartifactId=rackspace-cloudservers-us -Dversion=1.5.8 -Dtype=pom
mvn org.apache.maven.plugins:maven-dependency-plugin:2.7:copy-dependencies -f /path/to/m2/repo/org/jclouds/provider/rackspace-cloudservers-us/1.5.8/rackspace-cloudservers-us-1.5.8.pom -DoutputDirectory=/path/to/target/dir/don't/use/.
As pointed out by Everett Toews, you can use additional options of `copy:dependencies` to further refine what's downloaded, e.g. by adding `-DexcludeTypes=test-jar` to filter out the test JARs.
Problem
I need to download all transitive dependencies of a project to a directory on the command line without having a pom.xml file or other script. Ideally I would be able to do this with one or two commands. From what I can tell, this is at least a 2 step process with mvn. - Download dependencies to the local repository - Copy the dependencies to the lib directory To get the dependencies I run ``` $ mvn org.apache.maven.plugins:maven-dependency-plugin:2.6:get -DgroupId=org.jclouds.provider -DartifactId=rackspace-cloudservers-us -Dversion=1.5.8 ``` Which works great. Unfortunately the dest param doesn't help me as it won't put all transitive dependencies in the dest. So now I need to copy that JAR file and all of its transitive dependencies into my lib directory. I know this part has been asked many time on StackOverflow but nothing has worked for my yet. I've tried the following. ``` $ mvn dependency:copy-dependencies ... [ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy-dependencies (default-cli): Goal requires a project to execute but there is no POM in this directory ``` and ``` $ mvn dependency:copy ... [ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy (default-cli): Goal requires a project to execute but there is no POM in this directory ``` From reading the documentation and other answers here on StackOverflow for copy-dependencies and copy I thought I would be able to use them from the command line without a pom.xml but mvn seems to need one. My Maven version is Apache Maven 3.0.4 (r1232337; 2012-01-17 02:44:56-0600). Can anyone give me an example of copying transitive dependencies using mvn without a pom.xml? Is there a better way to do what I'm trying accomplish here?