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...