Apache Maven: деплой в JFrog Artifactory

Автор: | 09/12/2015

apache_maven_logoЗадача: деплоить результаты билда Maven в JFrog Artifactory.

Пример с выполняется плагином maven-deploy-plugin, но для некоторых случаев может пригодиться плагин artifactory-maven-plugin.

Пример ошибки без настроек деплоя вообще:

$ mvn clean deploy
...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project parent: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]
...

Редактируем корневой pom.xml, добавляем настройки для maven-deploy-plugin:

    <distributionManagement>
        <repository>
            <id>engineering</id>
            <name>my-proj-releases</name>
            <url>https://my-proj.artifactoryonline.com/my-proj/snapshots-local</url>
        </repository>
        <snapshotRepository>
            <id>my-proj</id>
            <name>my-proj-snapshots</name>
            <url>https://my-proj.artifactoryonline.com/my-proj/snapshots-local</url>
        </snapshotRepository>
    </distributionManagement>

Отдельно создаём файл maven-settings.xml (или прописываем в ~/.m2/settings.xml) с настройками доступа:

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"
          xmlns="http://maven.apache.org/SETTINGS/1.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <servers>
        <server>
            <id>my-proj</id>
            <username>someuser</username>
            <password>somepass</password>
        </server>
    </servers>

</settings>

Ещё раз запускаем билд и деплой:

$ mvn clean deploy
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

Готово.