Утилита для загрузки артефактов из репозитория maven без mvn / poms [закрыто]

StackOverflow https://stackoverflow.com/questions/884808

Вопрос

Существует ли клиент maven, который не является mvn (двоичный файл, включенный в дистрибутив maven) Я мог бы использовать для извлечения артефакта из репозитория maven без использования pom?Я бы хотел использовать репозиторий maven в качестве репозитория для нашей операционной команды для сбора сборок (включая моментальные снимки сборок), но я не хочу, чтобы им приходилось возиться с написанием pom и объявлением зависимостей в них.В идеале, я ищу просто клиент cli, которому я мог бы просто передать URL-адрес репозитория и координаты и загрузить данный артефакт.Существует ли такая вещь или мне лучше написать одноразовый сценарий для этого?

Это было полезно?

Решение

Используйте Nexus.Он предоставляет веб-интерфейс, который другие команды могут использовать для загрузки артефактов. http://nexus.sonatype.org/

Другие советы

Я вижу 3 простых варианта:

  1. Просто отправьте им ссылку, указывающую на ваш артефакт в вашем репозитории, и попросите их воспользоваться их браузером.
  2. Устанавливайте и используйте wget (wget http://path/to/artifact.extension).
  3. Устанавливайте и используйте mvn dependency:get (требуется mvn но не делает требовать от pom.xml, видеть этот ответ для получения более подробной информации).

Используйте встраиватель maven.Более того, используйте функциональность внутри maven embeddder для разрешения и загрузки jar-файлов.Хотя, если вы пытаетесь просто написать простой CLI, структура репозитория не сложна, и вы могли бы легко написать скрипт, который использует URL-адрес репозитория maven, идентификатор артефакта, идентификатор группы и версию для генерации полного URL-адреса jar.

Вот как мы делаем это в jcabi-эфир:

final File repo = this.session.getLocalRepository().getBasedir();
final Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
  new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
  JavaScopes.RUNTIME
);

Все, что вам нужно предоставить в эту библиотеку, - это 1) список удаленных репозиториев, 2) местоположение локального репозитория и 3) Maven-координаты артефакта.Библиотека использует Эфир Apache из Sonatype.

Технически доступ к хранилищу осуществляется по протоколу HTTP, поэтому, учитывая местоположение хранилища, артефакт и координаты, должно быть возможно просто предоставить вашей оперативной группе URL-адрес артефакта, который они могут найти в любом браузере.

Подумайте о URL - АДРЕС Pax который позволяет вам использовать простые URL-адреса для ссылки на артефакты maven следующим образом:

mvn:groupId/artifactId/version

Видишь Веб-сайт PAX URL для получения дополнительной информации (обработчик протокола MVN).

Тони

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top