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.