it-swarm.com.ru

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

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

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

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

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

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

26
Chris Beach

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

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

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

22
Guy

Цель 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 удалит временные метки из сборок снимков.

33
Gili

Пример для загрузки версии 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
3
RCross

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

0
khmarbaise