Развертывание артефакта Maven в нескольких хранилищах с различными настройками

У нас есть множество Java-проектов, созданных с помощью Jenkins. Они развернуты на нашем собственном сервере Nexus просто отлично. Проблема в том, что мы должны предоставить эти библиотеки третьей стороне, но без исходного кода. Итак, для каждого проекта в Nexus мы имеем:

релизы репозиторий для наших разработчиков (включает развернутый исходный код)моментальные снимки репозитории для наших разработчиков (включая развернутый исходный код)Сторонний релиз хранилище (только JAR + POM)(и было бы хорошо иметь):Снимок третьей стороны репозиторий (только JAR + POM) для ночных сборок сторонних производителей

Вопрос в том, как это обычно делается в мире Jenkins / Nexus? Я бы предпочел иметь одну работу в Jenkins, которая обрабатывает сборку CI и процесс выпуска (развертывания артефактов) «автоматически». В настоящее время я использую несколько<distributionManagement> профили в нашем "основном корне pom.xml" (включены во все проекты):

[...]
<profiles>
    <profile>
        <id>default</id>
        <distributionManagement>
            <repository>
                <id>releases</id>
                <name>Release</name>
                <url>http://path/to/nexus/content/repositories/releases/</url>
            </repository>
            <snapshotRepository>
                <id>snapshots</id>
                <name>Snapshot</name>
                <url>http://path/to/nexus/content/repositories/snapshots/</url>
                <uniqueVersion>false</uniqueVersion>
            </snapshotRepository>
        </distributionManagement>
    </profile>
    <profile>
        <id>third-party</id>
        <distributionManagement>
            <repository>
                <id>releases</id>
                <name>Release</name>
                <url>http://path/to/nexus/content/repositories/third-party/</url>
            </repository>
            <snapshotRepository>
                <id>snapshots</id>
                <name>Snapshot</name>
                <url>http://path/to/nexus/content/repositories/third-party-snapshots/</url>
                <uniqueVersion>false</uniqueVersion>
            </snapshotRepository>
        </distributionManagement>
    </profile>
</profiles>

Из документов Maven кажется, что нельзя использовать несколько репозиториев в течение одного жизненного цикла сборки, не говоря уже о том, что нам нужен / не нужен источник, основанный на целевом репо.

Я могу сделать трюк с созданием Job в Дженкинс, с Maven "Цели и варианты":clean deploy -P third-party и затем добавление действия Пост-сборки - «Развертывание артефактов в репозитории Maven» с данными «по умолчанию» - но в этом случае только SNAPSHOT отправляются как в репозиторий, так и в артефакты, выпущенные черезПлагин Jenkins Maven Release собираются в один репозиторий только.

Любые практические идеи, как я могу сделать это, не усложняя нашу иерархию работы CI?

Заранее спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос