Простая командная строка для загрузки удаленного артефакта maven2 в локальный репозиторий?

У меня есть библиотека, которую я распространяю с помощью maven 2. Обычный пользователь этой библиотеки не использует maven для создания своих приложений, но, скорее всего, немного знаком с maven и, возможно, установил его.

Я хотел бы задокументировать "простую" одну командную строку, которую они могут использовать для загрузки артефактов библиотеки в их локальный ~/.m2/repository, не требуя, чтобы они установили pom.xml для этого.

Я думал, что есть способ сделать это, но я не могу найти его, просмотрев документацию плагина install:install-file и dependency. Я пробовал такие вещи, как:

mvn install:install-file -DrepositoryId=java.net -Durl=http://download.java.net/maven/2/ -Dfile=robo-guice-0.4-20091121.174618-1.jar -DpomFile=robo-guice-0.4-20091121.174618-1.pom -DgroupId=robo-guice -DartifactId=robo-guice -Dversion=0.4-SNAPSHOT -Dpackaging=jar

но я думаю, что я лаю неправильное дерево, так как кажется, что плагин установки используется для копирования локально созданных файлов в локальный репозиторий, а не для загрузки удаленных артефактов в локальный репозиторий.

Это артефакт, который я хотел бы установить: http://download.java.net/maven/2/robo-guice/robo-guice/0.4-SNAPSHOT/

Возможно ли это с помощью maven?

Ответ 1

Начиная с версии 2.1 Maven Dependency Plugin, существует зависимость : получить цель для этой цели. Чтобы убедиться, что вы используете правильную версию плагина, вам нужно будет использовать "полное имя":

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
    -DrepoUrl=http://download.java.net/maven/2/ \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT

Ответ 2

Дайте им тривиальный pom с этими банками, указанными в качестве зависимостей и инструкций для запуска:

mvn dependency:go-offline

Это приведет к зависимостям от локального репо.

Более прямым решением является зависимость: get, но для этого достаточно аргументов:

mvn dependency:get -DrepoUrl=something -Dartifact=group:artifact:version

Ответ 3

Начиная с версии 2.4 Maven Dependency Plugin, вы также можете определить целевое назначение артефакта, используя флаг -Ddest. Он должен указывать на имя файла (а не на каталог) для артефакта назначения. См. Страницу параметров для дополнительных параметров, которые можно использовать

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get \
    -DremoteRepositories=http://download.java.net/maven/2 \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT \
    -Ddest=c:\temp\robo-guice.jar