Estou tentando descobrir como organizar muitos (cerca de 50+) projetos maven2, para que eles possam implantar em um repositório central do Nexus. Ao usar a mvn deploy
meta, é necessário especificar o destino na tag DistributionManagement como este:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
Agora, eu não quero que cada pom.xml (daqueles 50+) contenha este bloco repetidamente. Meu primeiro pensamento seria o settings.xml
arquivo, mas parece que não é possível (por design) defini-lo lá. Então, a primeira pergunta seria: por que isso acontece? Se fosse possível, eu poderia especificá-lo no settings.xml da distribuição maven2, que poderia ser distribuído a todos os desenvolvedores.
A única solução possível que encontrei foi criar um projeto master-pom para toda a organização, que contenha essas configurações, e fazer todos os outros pom.xml dependerem desse master-pom via <parent>
tag. Mas isso parece meio estranho em compilações de vários módulos:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
Normalmente eu li em toda a documentação que o módulo poms deve usar o pom pai, não algum diferente. Mas depois de ler o site maven sobre Herança x Agregação, está escrito que é realmente possível.
Um problema que encontrei foi com a geração do site maven, que parece ter problemas com esta configuração (os módulos não são vinculados corretamente se não tiverem uma referência direta)
Então, esta é uma abordagem válida? Alguma outra solução mais simples e óbvia para o problema?