Что требуется для использования maven для развертывания артефактов?

Я настраиваю систему CI с архивом репозитория на основе Apache Archiva. Среди различных методов развертывания файлов наиболее перспективным представляется использование maven (в отличие от REST API, которое потребовало бы слишком много curl звонки и веб интерфейс, который не для автоматизации).

Похоже, что для развертывания артефакта, такого как zip-архивы артефактов сборки, в maven есть следующий плагин: deploy: deploy-file. Однако попытка просто вызвать эту команду не дала мне никаких результатов.

Я не работал с Maven раньше; в настоящее время наши сборки выполняются путем вызова cmake в исходном каталоге, затем make из сценария оболочки. Что мне нужно добавить и уметь использовать maven для развертывания полученного артефакта?

Нужно ли создавать файл pom? Если да, какие шаги мне нужно добавить?

3 ответа

Решение

Ты можешь использовать deploy:deploy-file загрузить эти артефакты, и по умолчанию он сгенерирует POM для вас. Что вам нужно, это:

  1. установить Maven
  2. создать settings.xml файл, с <server> элемент, содержащий учетные данные для развертывания в Archiva по HTTP

Здесь немного больше информации: http://maven.apache.org/plugins/maven-deploy-plugin/usage.html. Если вы генерируете POM, то вам нужно будет предоставить groupId (четкая группировка артефактов), artifactId (имя файла без версии), version (версия артефакта), и packaging (обычно расширение, такое как zip) параметров вместе с необходимыми repositoryId, url а также file,

Однако не обязательно использовать Maven или REST API - вы также можете просто использовать простой вызов HTTP PUT:

curl -T artifact.zip http://localhost:8080/archiva/repository/my-releases/group/artifact/version/artifact-version.zip

Вы также можете использовать scp, ftp и т. Д., Чтобы поместить файл непосредственно в файловую систему Archiva. Обратите внимание, что в этом случае вам придется подождать, пока запланированное сканирование Archiva подберет его.

Maven нуждается в WebDAV-подобном репозитории (см. Также Nexus, Artifactory) для развертывания своих артефактов (в основном, jar, war, ear или сборки). Здесь вы найдете инструкции по настройке Maven с Archiva.

Да, необходимо иметь pom.xml в maven, и также очевидно, что вам нужно установить maven на ваш компьютер. Как минимум, вам нужно предоставить идентификатор артефакта (например, имя jar), идентификатор группы (например, пакет для определения местоположения артефакта в хранилище) и версию. По умолчанию структура пакета будет jar, если вы не укажете это как war/ear/pom. Если вы хотите использовать какие-либо зависимости, вы можете упомянуть их в разделе зависимостей.

Ниже приведен минимальный необходимый пом.

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Maven Quick Start Archetype</name>
</project>

Вот краткое руководство по знакомству с Maven.

Другие вопросы по тегам