Развертывание артефактов в двух разных удаленных хранилищах - Maven? - PullRequest
0 голосов
/ 12 марта 2020

Необходимо развернуть артефакты из двух удаленных репозиториев в зависимости от среды c. Поэтому я попытался использовать профили в управлении распределением в pom. xml

   <profiles>
<profile>
    <id>dev-repository</id>
    <activation>
        <property>
            <name>devRepo</name>
            <value>true</value>
        </property>
    </activation>
    <properties>
    </properties>
    <distributionManagement>
        <repository>
        <id>dev</id>
        <url>https://nexus/dev</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    </distributionManagement>
</profile>

<profile>
    <id>qa-repository</id>
    <activation>
        <property>
            <name>!devRepo</name>
        </property>
    </activation>
    <properties>
    </properties>
    <distributionManagement>
          <repository>
        <id>qa</id>
        <url>https://nexus/qa</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    </distributionManagement>
</profile> 
</profiles>

Пробовал Активировать профили

> mvn clean deploy -PdevRepo

Я получаю следующую ошибку.

Развертывание не удалось: элемент хранилища не был указан в POM внутри элемента distributionManagement или в -DaltDeploymentRepository = id :: layout :: url параметр

похоже, что pom может ' не распознает теги distributionMangement.

Но он работает нормально без профилей для единого управления распределением.

Любой, пожалуйста, сообщите об этом?

Ссылка

Настройка Maven для легкого развертывания в разных хранилищах

Проблема развертывания с плагином Maven

1 Ответ

0 голосов
/ 12 марта 2020

Вместо того, чтобы использовать профили, я бы определил Management Distribution с URL-адресом вида <url>https://nexus/${target.repo}</url>

Тогда вы можете сделать что-то вроде mvn clean deploy -Ptarget.repo=dev.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...