有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在没有pom的情况下将工件及其依赖项下载到指定目录。使用Maven的xml?

我需要做的是从我的内部存储库(当前为Nexus)及其所有依赖项将工件下载到指定目录。在不实际下载源代码(并使用其pom.xml)的情况下:我只需要从shell运行一个普通的maven命令并访问存储库中的二进制文件

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

大概是这样的:

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

我所尝试的:

dependency:getdependency:copy插件将依赖项复制到我的本地存储库(在~/.m2下),这不是我想要的

dependency:copy-dependencies需要一个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,因为它不存在

有什么想法吗

谢谢


共 (2) 个答案

  1. # 1 楼答案

    this answer的启发,我创建了一个简单的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文件夹中

    不是最好的解决方案,也不是最漂亮的,也不是我想要的,但它解决了问题,挽救了一天