Pessoal, nao tenho muita experiencia em java, comecei a programar na linguagem a uns 2 meses e queria saber o seguinte … antes de mais nada vou explicar ± o que a aplicacao deveria fazer:
eu vou usar o quartz para toda semana dar um update do svn para a maquina, gerar o log do projeto e executar um comando no console shell do linux para rodar um .jar
o proposito desse programa eh toda semana dar um update em todos os projetos do svn, gerar o log para cada um deles e depois executar o statSVN, que eh uma lib que gera uma pagina estatica com estatisticas dos projetos, esse eh o motivo para eu estar usando o quartz para fazer essa atualizacao semanal.
queria saber duas coisas: como faco usando java para dar o update do svn, gerar o log e executar a lib usando o comando do shell
e segundo existe alguma coisa mais sofisticada que esse statsvn, alguma lib que me gere uma pagina dinamica e que nao precise desse artificio do quartz?
Sinceramente ainda não entendi direito o propósito do seu intento. Ferramentas de estatística de projetos java com svn ou cvs podem ser facilmente integradas usando um maven ou um ant. Geradores automáticos (por semana por exemplo) dessas estatísticas podem ser conseguidos com ferramentas de integração contínua como Hudson, Continuum, Cruise Control etc. Mas, se ainda sim isso não for suficiente pra vc, sugiro q use um script shell mesmo, rodando no cron, q execute as ações de shell q vc quer, já que eh a ferramenta mais adequada q o java pra isso. E, se vc quiser mesmo usar o Java, pode utilizar o System.getRuntime.exec(“script.sh”); (onde seu script deve estar no parametro) q aih o java consegue rodar programas de console.
Vou tentar explicar melhor. Estou tentando usar o statsvn (http://www.statsvn.org/) para gerar um site, que vai ficar na intranet, com as estatisticas do projeto. O statsvn faz quase tudo, tudo que eu preciso fazer eh instalar um cliente do svn na maquina colocar o .jar do statsvn e executar ele. No final das contas ele me gera paginas html, um site. Soh que eu preciso gerar esse site continuamente e eu nao queria ficar fazendo isso na mao.
Pensei em usar o quartz, que eh uma api do java para executar jobs periodicamente.
Como eu disse, sou novo no java, faz uns 2meses que comecei a programar e nao conheco muitas api’s para a linguagem, nunca usei esse maven, eu soh uso o ant para dar build, clean build e dar deploy.
Vou dar uma pesquisada no maven e nessas ferramentas de integracao.
No meu caso Maven resolve? Qual seria a melhor opcao?
ei dei uma olhada rapida aqui nessas ferramentes de integracao continua. Pelo que eu entendi, sao frameworks que geram builds continuos e criam tambem uma interface web para ver os detalhes dos builds passados. No meu caso acho que isso nao vai dar certo, porque no servidor svn tem projetos que nao sao feitos em java e eu ia ter que adptar todos os projetos para rodar nesses frameworks. O statsvn gera a interface web em cima dos logs do servidor svn, so que para isso eu preciso fazer todo o processo do statsvn
1: dar um checkout do projeto que esta no servidor para a maquina cliente
2: criar um log novo para o modulo
3: rodar o statsvn
eu tenho que fazer isso para cada projeto no servidor, por isso tava pensando em fazer um programa em java para fazer isso por mim. bem, como eu nao sou muito conhecedor da linguagem pode existir uma abordagem melhor.
Bem, o ant é uma ferramenta q pode fazer coisas além do java, como compilar usando makefiles, copiar arquivos, fazer update do svn e tals. Soh q tem q ser programado pra isso via xml. No seu caso, eu imagino q seja mais facil fazer isso por scripts shell, jah q td o algoritmo do seu problema seria resolvido com comando de console, apesar de dar pra criar isso com ant tb. Aih, uma vez feito o script, eh soh colocar ele no cron pra rodar de vez em qnd pra vc. Acho q eh uma abordagem simples.
Abraço!
Para não empatar muita memória de sua máquina, em vez de usar um programa Java com Quartz para iniciar outra aplicação, use os próprios recursos do Linux para agendar a execução de aplicações, como o crontab (dependendo de sua distribuição Linux há recursos ainda mais poderosos ou fáceis de usar que o crontab.)
Obrigado ae, vou fazer isso mesmo. Vou criar um projeto de uma pagina no tomcat, soh mesmo para fazer um indice linkando para os projetos e dentro da pasta da pagina colocar o script que vai rodar periodicamente com o crontable