Подтвердить что ты не робот

Как загрузить баночки из Maven Central без написания pom.xml

Мне бы хотелось что-то вроде следующего.

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

Мне хотелось бы что-то вроде этого:

download-jar --dest=lib/ 'commons-io:commons-io:jar:1.4'

Он также должен иметь возможность загружать зависимости.

Update:

Я бы не знал, что pom.xml должен быть структурирован.

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

Есть что-то подобное?

4b9b3361

Ответ 1

Если вы хотите загрузить зависимостей maven в свой каталог lib, используйте плагин зависимостей с функцией copy-dependencies.

mvn -DoutputDirectory=./lib -DincludeArtifactIds=commons-logging,commons-io dependency:copy-dependencies 

Без части -DincludeArtifactIds вы будете загружать каждую зависимость.

Если вы хотите загрузить артефакт без конкретного проекта * см. ниже **:

mvn -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4 dependency:get

Ресурсы:

В той же теме:

Интересные комментарии:

  • * @Паскаль Тивент:

    Не нужно настраивать POM, не нужно разрабатывать собственный инструмент, используйте зависимость mvn: get. Это правильный ответ на этот вопрос.

Ответ 2

Мне также пришлось указать -DrepoUrl после получения сообщения об ошибке:

Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:get 
  (default-cli) on project standalone-pom: The parameters 'repositoryUrl' 
  for goal org.apache.maven.plugins:maven-dependency-plugin:2.1:get are 
  missing or invalid -> [Help 1]

Итак, вот команда, которую я использовал:

mvn -DgroupId=edu.umd -DartifactId=cloud9 -Dversion=1.3.5 \
  -DrepoUrl="http://repo1.maven.org/maven2" dependency:get

Furthemore, -Ddest=~ не работает. Он всегда настаивал на установке банки на ~/.m2/repository.

Ответ 3

Maven3 использует плагин зависимостей v2.1 по умолчанию:

$ mvn dependency:get -DrepoUrl=http://download.java.net/maven/2/ \
   -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4

С Maven2 все еще необходимо записать каноническое имя:

$ mvn2 org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
   -DrepoUrl=http://download.java.net/maven/2/ \
   -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4

Используйте параметр artifact, чтобы установить имя артефакта как группу: артефакт: версия:

$ mvn dependency:get -DrepoUrl=http://download.java.net/maven/2/ \
   -Dartifact=commons-io:commons-io:1.4

Используйте LATEST для загрузки последней версии артефакта:

$ mvn dependency:get -DrepoUrl=http://download.java.net/maven/2/ \
   -Dartifact=commons-io:commons-io:LATEST

Ответ 5

Посмотрите Ivy. Он обеспечивает разрешение зависимостей от хранилищ maven без сложности overkill самого maven.