2014-09-16 5 views
0

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

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

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

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

ответ

1

Вы можете использовать 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 

Вы также можете использовать УПП, FTP и т.д., чтобы поместить файл непосредственно в файловой системе Archiva. Обратите внимание, что в этом случае вам придется ждать запланированного сканирования Archiva, чтобы поднять его.

+0

Благодарим вас за ответ. И двойное спасибо за пример скручивания. – Srv19

0

Maven нуждается в WebDAV как хранилище (см также Nexus, Artifactory) развернуть свои артефакты (в основном фляги, войны, ухо или assemblies. Посмотрите here для как по настройке Maven с Archiva.

0

Да , необходимо иметь pom.xml в maven, и также очевидно, что вам нужно установить maven на вашем компьютере. Минимальный минимум, вам необходимо предоставить идентификатор артефакта (например, имя фляги), идентификатор группы (например, пакет для идентификации расположение артефакта в репозитории) и версия. По умолчанию структура пакета будет 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> 

Here - это быстрый учебник для знакомства с maven.

+0

Из того, что я прочитал, идентификатор артефакта, версия etcetera может быть передана в maven как параметры командной строки.Я хотел бы узнать, как развернуть произвольные артефакты (в основном архивы zip) - поскольку проекты уже сделаны с cmake, я бы предпочел избежать дублирования их описаний в xml maven. – Srv19

+0

Эти значения можно передать с помощью командной строки. И выполните цели из командной строки (через ваш файл cmake). Но в конце дня maven создает pom.xml и использует этот файл при выполнении целей из командной строки. Я не думаю, что есть способ пропустить pom в maven. – Bala

Смежные вопросы