Is there a way to download dependencies from a pom.xml file to a specified folder in java? I'm able to run maven command from java and I got download messages, but I don't know where maven stores these libraries? How can I download these dependencies to a specific folder?
5 Answers
Take a look at maven's dependency plugin, specifically the
copy-dependencies
goal. The usage section describes how to do exactly what you want.
To do it from the command line just do:
$ mvn dependency:copy-dependencies -DoutputDirectory=OUTPUT_DIR
Add this to exclude the transitive or inner dependencies:
-DexcludeTransitive=true

- 14,356
- 6
- 59
- 94

- 60,628
- 22
- 121
- 123
-
2I'm encountering a strange issue with this method, it downloaded a .pom file for the main dependency but for its subdependencies (the transitive dependencies) it downloaded the proper jars. Am I doing something wrong? – jmng Jan 09 '18 at 16:21
-
1Note, on Windows, use `mvn dependency:copy-dependencies "-DoutputDirectory=OUTPUT_DIR"` – AndrWeisR Jul 20 '20 at 03:38
As explained here, you can use maven-dependency-plugin:get for this.
For example, if you want to download org.apache.hive:hive-common:2.1.1
in your local folder, execute this:
mvn dependency:get -Ddest=./ -Dartifact=org.apache.hive:hive-common:2.1.1
If you want to download the latest 3.0.0-SNAPSHOT:tar.gz
version of com.orientechnologies:orientdb-community-gremlin
from https://oss.sonatype.org/content/repositories/snapshots
snapshots repository, execute this:
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

- 22,041
- 18
- 107
- 163
-
You can use `-Dartifact=org.apache.hive:hive-common:LASTEST` to get the latest version. – Matthieu Sep 02 '19 at 10:28
-
[WARNING] destination/dest parameter is deprecated: it will disappear in future version. – Artem Yakovlev Oct 30 '20 at 11:53
Add something similar to the following to pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<outputDirectory>
${project.build.directory}
</outputDirectory>
</configuration>
</plugin>
Then run mvn clean dependency:copy-dependencies
to perform the copy.
Combine this with the assembly plugin and you can package everything into a self contained archive for distribution.

- 13,002
- 13
- 87
- 129

- 1,556
- 3
- 18
- 28
-
I changed `${project.build.directory}` to `main\java\resources\libs` to build my local library. Thanks! Note: here my path is relative to the `usr.dir` (project root), but it can also be absolute, like `C:\Mydir`. Great! – WesternGun Jul 21 '17 at 09:05
Maven stores all of these in it's local Maven2 repository. By default, it will store them in your user home directory under a directory called repository.
You can use the maven-dependency-plugin's goal called copy to take all of your project's dependencies and put them in a folder.
http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html

- 404
- 3
- 12
-
2Is there any other way in java to copy dependencies as I don't write the pom.xml I just run it? – Feras Odeh Oct 12 '11 at 15:17
Go to this site: http://jar-download.com/online-maven-download-tool.php
Insert the Maven dependencies XML
Download the jar files as a ZIP.

- 49
- 1
-
13I'd refrain from downloading .jars through a third (fourth?) party site, who knows what else they add or how they modify to the archives (malware)? sblundy gave a more straight forward answer. – try-catch-finally May 16 '16 at 06:18
-