我需要在没有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 复制传递依赖项的例子?
有没有更好的方法来做我在这里尝试完成的事情?
Apache ivy 可以作为独立的 jar运行来下载 Maven 依赖项。不需要 POM。
curl -L -O http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar java -jar ivy-2.3.0.jar -dependency org.jclouds.provider rackspace-cloudservers-us 1.5.8 -retrieve "lib/[artifact]-[revision](-[classifier]).[ext]"
生成以下文件:
├── ivy-2.3.0.jar └── lib ├── aopalliance-1.0.jar ├── asm-3.1.jar ├── bcprov-jdk16-1.46.jar ├── cglib-2.2.1-v20090111.jar ├── clojure-1.3.0.jar ├── core.incubator-0.1.0.jar ├── gson-2.2.jar ├── guava-13.0.jar ├── guice-3.0.jar ├── guice-assistedinject-3.0.jar ├── javax.inject-1.jar ├── jclouds-compute-1.5.8.jar ├── jclouds-core-1.5.8.jar ├── jclouds-scriptbuilder-1.5.8.jar ├── jsr250-api-1.0.jar ├── jsr311-api-1.1.1.jar ├── openstack-keystone-1.5.8.jar ├── openstack-nova-1.5.8.jar ├── rackspace-cloudidentity-1.5.8.jar ├── rackspace-cloudservers-us-1.5.8.jar ├── rackspace-cloudservers-us-1.5.8-javadoc.jar ├── rackspace-cloudservers-us-1.5.8-sources.jar ├── rocoto-6.1.jar └── tools.logging-0.2.3.jar