Estou com o seguinte “problema”: preciso de uma ferramenta capaz de acessar um repositório CVS e, a partir da escolha de um módulo sob controle de versão, faça o build desse módulo na máquina local e coloque o arquivo War no Tomcat da máquina, sem armazenar fontes na mesma.
Poderia fazer isso com Ant, mas creio que teria que criar um arquivo XML para cada módulo, correto?
Pesquisei também um pouco sobre CruiseControl, mas parece usar um AK-47 pra matar uma mosca…
Resumindo, preciso que seja possível o seguinte (de preferência, sem ter que desenvolver algo):
Usuário abre a ferramenta;
Usuário escolhe um módulo no repositório CVS (previamente configurado, assim como a localização do Java e do Tomcat na máquina);
A ferramenta faz o build e coloca o arquivo War no Tomcat.
Bom, da pra fazer um shell script em meia hora. Mas vc vai ter que colocar os WARs no repositorio, ou baixar os fontes num diretorio tmp qualquer, compilar, fazer o war e depois apagar.
Pensei melhor no que o cv disse e realmente acho que seria tranquilo fazer um .bat (ambiente windows) que receba o nome do módulo como parâmetro e utilize os comandos do CVS e do Java para baixar, compilar e depois apagar os fontes.
Nunca usei o CVS por linha de comando, mas vou atrás disso.
Bom, decidimos desenvolver um programa Java simples em modo texto que pede para o usuário alguns dados e usa um template de arquivo XML para montar o aquivo de build e então chamar o Ant.
Fizemos isso porque a ferramenta será distribuída a vários usuários e a configuração não pode ser fixa, então os dados (como host, usuário, senha, módulo) serão gravados num properties. Após a primeira execução o usuário tem a opção de usar os mesmos dados ou alterar qualquer um que necessite.
Isso tudo é só pra facilitar o uso pelo pessoal não técnico, caso contrário o Ant “puro” seria mesmo suficiente, mas queremos isolar o máximo de detalhes possível pra deixar bem transparente.