使用Maven将依赖项下载到命令行上的目录 [英] Using Maven to download dependencies to a directory on the command line

查看:302
本文介绍了使用Maven将依赖项下载到命令行上的目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将项目的所有传递依赖项下载到命令行上的目录,而没有pom.xml文件或其他脚本。理想情况下,我可以使用一个或两个命令执行此操作。据我所知,这至少是使用mvn的两步过程。

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.


  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

哪个效果很好。不幸的是,dest param对我没有帮助,因为它不会将所有传递依赖项放在dest中。

Which works great. Unfortunately the dest param doesn't help me as it won't put all transitive dependencies in the dest.

所以现在我需要复制那个JAR文件及其所有的传递依赖到我的lib目录。我知道这部分已经在StackOverflow上被问了很多次,但是我的工作没有任何效果。我已尝试过以下内容。

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

$ 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

通过阅读StackOverflow上的文档和其他答案来获取复制依赖和复制我想我会能够在没有pom.xml的情况下从命令行使用它们,但是mvn似乎需要一个。我的Maven版本是Apache Maven 3.0.4(r1232337; 2012-01-17 02:44:56-0600)。

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

任何人都可以给我一个复制传递的例子使用没有pom.xml的mvn的依赖关系?

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?

推荐答案

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

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:

这是一个例子:

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。

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.

这篇关于使用Maven将依赖项下载到命令行上的目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆