Jenkins construindo um produto que consiste em muitos projetos Maven? (com o plugin Jenkins Pipeline?)

Temos um produto que consiste em muitos projetos Maven que dependem um do outro. Todos esses projetos do Maven se reúnem em um único projeto que entrega o produto final.

Os projetos Maven compartilham o mesmo ciclo de vida. Em outras palavras, eles não são gerenciados por equipes separadas de pessoas com explicações explícitas.<dependency> alterações para escolher versões mais recentes de outros projetos. Em vez disso, quando alguém altera algo em um dos projetos, o resultado deve ir diretamente para o produto final sem alterações adicionais.

Usamos o Jenkins como nossa ferramenta de integração contínua.

Os principais desejos que temos são os seguintes:

Não é necessário copiar todas as dependências entre projetos para a configuração do Jenkins: elas devem estar em um único local, idealmente opom.xml arquivos.Evite construções desnecessárias: em uma alteração do SCM, crie apenas os projetos potencialmente afetados.No caso dedependências de diamante (C depende de B1 e B2, que dependem de A), se o menor (A) for alterado, o produto final (C) sempre deve usar a versão de A que também foi usada para construir / testar B1 e B2 .

Pergunta, questão: Qual é a melhor abordagem para fazer isso com Jenkins?

Atualmente, estamos pensando em usar um único trabalho usando o plug-in Jenkins Pipeline, que analisa as dependências do Maven e as alterações do SCM, decide o que precisa ser construído e em que ordem e, em seguida, constrói os projetos.

questionAnswers(1)

yourAnswerToTheQuestion