I\'d like to download an artifact and its dependencies at the command line. I.e.
mvn [some plugin]:[goal] -DartifactId=[artifactId] -DgroupId=[groupId] -Dver
The simplest solution would be to create a simple pom with the appropriate dependencies and do mvn clean package on that mini project...
Try using the latest version of dependency:get, it works for me
mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]
works for me
Example to download version 6.9.4 of TestNG to your local ~/.m2/repository (uses maven-dependency-plugin:get):
mvn org.apache.maven.plugins:maven-dependency-plugin:RELEASE:get \
-Dartifact=org.testng:testng:6.9.4:jar
Example to download version 4.11 of JUnit to your current working directory (uses maven-dependency-plugin:copy):
mvn org.apache.maven.plugins:maven-dependency-plugin:RELEASE:copy \
-Dartifact=junit:junit:4.11:jar
The copy
goal is more appropriate here and it lets you specify an output directory as well (which is deprecated in the get
goal):
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=groupId:artifactId:version[:packaging][:classifier] -DoutputDirectory=[target] -Dmdep.useBaseVersion=true
mdep.useBaseVersion=true
will remove timestamps from snapshot builds.
this is the method that I use, matches your need but less typing and brain cell consumption:
curl https://start.spring.io/starter.tgz | tar -xzvf -
(btw, you can add -d dependencies=lombok
when the dependency you want is listed on starter like lombok.)
And then, in vim pom.xml
, delete whatever parent and modify everything between dependencies.
you just need to fill in group, artifact and version.
Finally, mvn package
. It starts to download...