Как загрузить артефакт Maven в командной строке без использования зависимости: get или maven-download-plugin?

Я хочу загрузить артефакт и его зависимости в командной строке. Т.е.

mvn [some plugin]:[goal] -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]

Я пробовал зависимость mvn: получить, но для этого, похоже, нужен список удаленных репозиториев. Я хочу, чтобы mvn использовал то, что уже указано в settings.xml

Я также пробовал плагин maven-download-plugin, но это не работает должным образом (он пытался загрузить xerces-impl в качестве транзитивной зависимости от муравья и не смог его решить. Ни xerces-impl, ни ant не зависят от моего артефакта).

Ваша помощь будет оценена по достоинству.

Ответ 1

Попробуйте использовать последнюю версию зависимости: get, она работает для меня

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]

работает на меня

Ответ 2

Цель copy здесь более уместна, и она также позволяет указать выходной каталог (который устарел в цели get):

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 удаляет отметки времени из mdep.useBaseVersion=true моментальных снимков.

Ответ 3

Пример для загрузки версии 6.9.4 TestNG в локальный ~/.m2/репозиторий (используется maven-dependency-plugin: get):

mvn org.apache.maven.plugins:maven-dependency-plugin:RELEASE:get \
-Dartifact=org.testng:testng:6.9.4:jar

Пример загрузки версии 4.11 JUnit в текущий рабочий каталог (используется maven-dependency-plugin: copy):

mvn org.apache.maven.plugins:maven-dependency-plugin:RELEASE:copy \
-Dartifact=junit:junit:4.11:jar

Ответ 4

Самое простое решение - создать простой pom с соответствующими зависимостями и сделать mvn clean package на этом мини-проекте...