【发布时间】:2013-03-05 05:29:21
【问题描述】:
我需要将项目的所有传递依赖项下载到命令行上的目录没有有 pom.xml 文件或其他脚本。理想情况下,我可以用一两个命令来做到这一点。据我所知,这至少是 mvn 的两步过程。
- 将依赖项下载到本地存储库
- 将依赖项复制到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 参数对我没有帮助,因为它不会将所有传递依赖项放在 dest。
所以现在我需要将该 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
通过阅读 StackOverflow 上有关复制依赖项和复制的文档和其他答案,我认为我可以在没有 pom.xml 的情况下从命令行使用它们,但 mvn 似乎需要一个。我的 Maven 版本是 Apache Maven 3.0.4 (r1232337; 2012-01-17 02:44:56-0600)。
谁能给我一个在没有 pom.xml 的情况下使用 mvn 复制传递依赖项的示例?
有没有更好的方法来做我在这里尝试完成的事情?
【问题讨论】:
-
有个不错的antrun插件,可以试试吗?
-
我假设您的意思是 maven.apache.org/plugins/maven-antrun-plugin 如何使用它来完成我想要完成的任务?
-
我正在使用 antrun 插件的 run 目标来复制和移动目录,所以也许您可以将所有文件(jar、cfg 文件等)收集到一些文件夹并从那里转移它们?还是简单地使用 cp/xcopy ?
-
这不会自动覆盖传递依赖。我真的在寻找一种方法,理想情况下,用一个或最多两个命令来做到这一点。你的建议会让我写一个脚本,这正是我想要避免的。感谢您为我澄清这一点。我会更新问题。