如何使用Maven pom将jar文件仅下载到特定目录?

Fer*_*deh 73 java maven

有没有办法将pom.xml文件中的依赖项下载到java中的指定文件夹?我能够从java运行maven命令,我得到了下载消息,但我不知道maven在哪里存储这些库?如何将这些依赖项下载到特定文件夹?

sbl*_*ndy 107

看看maven的依赖插件,特别是目标.在使用一节介绍了如何做的正是你想要的. copy-dependencies

要从命令行执行此操作,请执行以下操作:

$ mvn dependency:copy-dependencies -DoutputDirectory=OUTPUT_DIR
Run Code Online (Sandbox Code Playgroud)

  • 我在使用此方法时遇到了一个奇怪的问题,它下载了主要依赖项的 .pom 文件,但为其子依赖项(传递依赖项)下载了正确的 jar 文件。难道我做错了什么? (2认同)

Ram*_*ama 6

将类似于以下内容的内容添加到 pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <configuration>
        <outputDirectory>
            ${project.build.directory}
        </outputDirectory>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

然后运行mvn clean dependency:copy-dependencies以执行复制。将此与程序集插件结合使用,您可以将所有内容打包到一个独立的存档中以进行分发。


Ant*_* O. 6

正如解释在这里,你可以使用Maven的依赖关系的插件:得到这个。

例如,如果要下载org.apache.hive:hive-common:2.1.1到本地文件夹中,请执行以下操作:

mvn dependency:get -Ddest=./ -Dartifact=org.apache.hive:hive-common:2.1.1
Run Code Online (Sandbox Code Playgroud)

如果要从快照存储库下载最新3.0.0-SNAPSHOT:tar.gz版本,请执行以下操作:com.orientechnologies:orientdb-community-gremlinhttps://oss.sonatype.org/content/repositories/snapshots

mvn dependency:get -Ddest=./ -DremoteRepositories=sonatype-nexus-snapshots::::https://oss.sonatype.org/content/repositories/snapshots -Dartifact=com.orientechnologies:orientdb-community-gremlin:3.0.0-SNAPSHOT:tar.gz
Run Code Online (Sandbox Code Playgroud)

  • [警告]destination/dest 参数已弃用:它将在未来版本中消失。 (2认同)