Implantando o artefato Maven em vários repositórios com diferentes configurações

Temos inúmeros projetos Java, que são CI construídos com o Jenkins. Estes são implantados em nosso próprio servidor Nexus muito bem. O problema é que precisamos fornecer essas bibliotecas para terceiros, mas sem o código-fonte. Então, para cada projeto, no Nexus, temos:

Lançamentos repositório para nossos desenvolvedores (inclui código-fonte implementado)Instantâneos repositórios para nossos desenvolvedores (inclui código-fonte implementado)Versão de terceiros repositório (apenas JAR + POM)(e seria bom ter):Instantâneo de terceiros repositório (somente JAR + POM) para construções noturnas de terceiros

A questão é: como isso geralmente é tratado no mundo Jenkins / Nexus? Eu prefiro ter um único Job no Jenkins que lide com o build de CI e o processo de release (implantação de artefato) "automaticamente". Atualmente estou usando vários<distributionManagement> perfis em nossa "raiz principal pom.xml" (incluído por todos os projetos):

[...]
<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>

A partir dos documentos do Maven, parece que não há como usar vários repositórios durante o mesmo ciclo de vida de construção, sem mencionar o fato de que precisamos / não precisamos da fonte com base no repositório de destino.

Eu posso fazer um truque com a criação de um trabalho em Jenkins, com o Maven "Metas e opções":clean deploy -P third-party e, em seguida, adicionando a ação Pós-compilação - "Implantar artefatos no repositório Maven" com os dados "padrão" - mas, neste caso, apenas os SNAPSHOTs estão indo para o repositório e para os artefatos lançados viaPlug-in de lançamento do Jenkins Maven estão entrando em apenas um repositório.

Alguma idéia prática de como posso fazer isso sem complicar demais a hierarquia de tarefas de IC?

Desde já, obrigado!

questionAnswers(2)

yourAnswerToTheQuestion