使用Maven在命令行上将依赖项下载到目录

我需要将项目的所有传递依赖项下载到命令行上的目录,

pom.xml文件或其他脚本。理想情况下,我将可以使用一个或两个命令来执行此操作。据我所知,这至少是mvn的两步过程。

  1. 将依赖项下载到本地存储库
  2. 将依赖项复制到lib目录

为了获得我运行的依赖

$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.6:get -DgroupId=org.jclouds.provider -DartifactId=rackspace-cloudservers-us -Dversion=1.5.8

哪个很棒。不幸的是,目标参数对我没有帮助,因为它不会将所有可传递的依赖项放入目标中。

因此,现在我需要将该JAR文件及其所有传递依赖项复制到我的lib目录中。我知道这部分已经在StackOverflow上被问了很多遍,但是对我来说还没有任何作用。我已经尝试了以下方法。

$ 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

$ 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

通过阅读有关副本依赖关系和副本的文档和其他答案,我认为我可以在命令行中使用它们而无需pom.xml,但mvn似乎需要一个。我的Maven版本是ApacheMaven 3.0.4(r1232337; 2012-01-17 02:44:56-0600)。

谁能给我一个使用不带pom.xml的mvn复制传递依赖项的示例吗?

有没有更好的方法来完成我要在这里完成的工作?

回答:

第一条命令几乎可以满足您的需求-相关依赖项的POM。一旦有了它,就不需要再运行另一个项目POM了copy:dependencies

这是一个例子:

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/.

正如Everett Toews指出的那样,您可以使用的其他选项copy:dependencies来进一步优化下载的内容,例如通过添加-DexcludeTypes=test-jar以过滤掉测试JAR。

以上是 使用Maven在命令行上将依赖项下载到目录 的全部内容, 来源链接: utcz.com/qa/417361.html

回到顶部