Как загрузить баночки из Maven Central без написания pom.xml
Мне бы хотелось что-то вроде следующего.
Я хочу только утилиту, которая может загружать банки и их зависимости из Репозитория Maven без ограничений на то, как мой проект должен быть построен.
Мне хотелось бы что-то вроде этого:
download-jar --dest=lib/ 'commons-io:commons-io:jar:1.4'
Он также должен иметь возможность загружать зависимости.
Update:
Я бы не знал, что pom.xml должен быть структурирован.
Единственная задача, которую мне нужно выполнить, - это загрузить баночки, я хотел бы иметь инструмент, который мог бы выполнить эту задачу, которая не беспокоит меня сверхъестественной информацией.
Есть что-то подобное?
Ответы
Ответ 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
Ответ 4
Вы должны взглянуть на плагин зависимостей maven, возможно... и особенно его go-offline mojo
Ответ 5
Посмотрите Ivy. Он обеспечивает разрешение зависимостей от хранилищ maven без сложности overkill самого maven.