Temos dois projetos internos, A e B, desenvolvidos por equipes diferentes, com B dependente de A. Como o código-fonte dos dois projetos é armazenado no git, incluí o projeto A como um submódulo no projeto B e configurei o sistema de compilação para construir ambos na ordem certa. Uma solução alternativa seria consumir A através de um gerenciador de repositório binário, como Artifactory ou Nexus.
Gostaria de saber sobre os prós e os contras de depender do código-fonte vs dependendo de artefatos binários. Quando um é melhor que o outro? Até agora, consegui apresentar os seguintes fatores, mas estou realmente interessado em ouvir outras opiniões.
Dependendo do código fonte é melhor
- se você não tiver um gerenciador de repositório binário
- se você precisar depender da versão de pré-lançamento de outro projeto
- se você precisar corrigir outro projeto
- porque é mais fácil procurar o código fonte da dependência no IDE
Dependendo dos binários, é melhor
- para minimizar o tempo de construção
- para evitar o incômodo de configurar o ambiente de construção de outro projeto