繁体   English   中英

如何使用Maven将具有依赖项的工件下载到指定目录(不带pom.xml)?

[英]How to download an artifact with its dependencies to a specified directory - without pom.xml - using Maven?

我需要做的是从内部存储库(当前为Nexus )及其所有依赖项下载工件到指定目录。 而且,这无需实际下载源代码(并使用其pom.xml ):我只需要从外壳程序运行一个简单的maven命令并访问我的存储库中的二进制文件即可。

我不需要将依赖项下载到本地存储库中( 依赖项的行为:get / dependency:copy插件),我希望将工件及其所有依赖项复制到指定目录中。

像这样:

mvn super-downloader:download-everything -Dartifact=my.group:myArtifact:version -Ddirectory=.

我尝试过的

dependency:getdependency:copy插件将依赖关系复制到我不想要的本地存储库(在〜/ .m2下)。

依赖关系:复制依赖关系需要一个Maven项目。 我需要运行没有pom.xml的命令。

com.googlecode.maven-download-plugin:maven-download-plugin:artifact插件应与-DdependencyDepth=<some high value> ,但无法解析对xerces:xerces-impl:2.6.2的依赖关系。 我手动将其上传到了Nexus,但随后尝试查找不存在的xml-apis:xml-apis:2.6.2失败。

那么,有什么想法吗?

谢谢。

受此答案的启发,我创建了一个简单的bash脚本来解决该问题:

#mvn-copy.sh
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dmdep.useBaseVersion=true -DoutputDirectory=. -Dartifact=$1:$2:$3
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dmdep.stripVersion=true  -DoutputDirectory=. -Dartifact=$1:$2:$3:pom
mvn -f $2.pom org.apache.maven.plugins:maven-dependency-plugin:2.8:copy-dependencies -DoutputDirectory=lib

要使用它,只需键入./mvn-copy.sh <groupId> <artifactId> <version> 它将在当前目录下下载主jar,然后将所有依赖项下载到lib文件夹中。

不是最好的解决方案,不是最漂亮的解决方案,也不是我想要的,但是它解决了问题并节省了时间。

您正在请求https://jira.codehaus.org/browse/MDEP-322 ,这似乎是一个公平的要求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM