Processo de Desenvolvimento - Eclipse + Maven + SVN + Hudson

Oi pessoal,

Estamos definindo aqui um processo de desenvolvimento de software e agora entramos mais no nível desenvolvimento mesmo, codificação e testes. Aqui é setor público então terceiriza-se a maioria do desenvolvimento (infelizmente) de software, ficando pra nós a tarefa de arquitetura, review e definição dos processos (o que também é bacana). Queremos padronizar as ferramentas para que os desenvolvedores não saiam criando e fazendo o que bem entendem, já que temos farto histórico de problemas associados a essa liberdade, que ao meu ver só funciona bem em equipes maduras.

Como IDE, escolhemos o eclipse, maven como ferramenta de build e Tomcat 7 como servlet container (pelo menos a princípio). A idéia inicial é apenas commitar no SVN projetos na estrutura do maven. Segue o que seria o processo:

  1. NOVO PROJETO
    1.1)Gerar archetype do projeto pelo maven (projeto java simples ou projeto web)
    1.2) Limpar classes dummy geradas pelo maven
    1.3) Commit inicial

  2. Desenvolvimento dia-a-dia
    2.1) Programador baixa o projeto no SVN

2.2) Aqui entra o primeiro porém. Para desenvolver e testar com velocidade (principalmente WEB), ter o projeto como ‘projeto eclipse’ ajuda muito, já que ele faz hot deploy no container, dentre todas as facilidades do eclipse - não queria perder isso. A idéia inicial é orientar o desenvovledor a fazer o >mvn eclipse:eclipse e importar o projeto, pra programar usando todos os benefícios da IDE. No SVN, todos os arquivos do eclipse (.classpath, .project e pasta .settings) já estariam no ignore, impossibilitando o programador de jogar no svn os metadados do eclipse. O que me incomoda é fazer o programador dar esse comando, mas não vejo outro jeito - não gostei do M2Eclipse, quando utilizei ele pra importar o projeto ele cospe erros e ainda altera a versão do compilador do projeto, fazendo o eclipse reclamar de problemas nesse sentido.

2.3) programa, testa e commita (bom senso necessário, a princípio apenas commitar funcionalidades fechadas mas sabemos que no dia-a-dia é inevitável acontecerem commits parciais - a regra de ouro é nunca commitar algo sabidamente "quebrado", visto que no svn sempre deve haver uma versão que rode sem problemas)

2.4) Adição de dependências ao projeto - outro problema. Posso usar o M2Eclipse pra adicionar certinho ao pom.xml, mas com o projeto sendo eclipse será preciso rodar NOVAMENTE, a cada dependência adicionada/removida um > mvn eclipse:eclipse pro maven ler o pom e adicionar no classpath do projeto.

Sinceramente, não estou gostando dos passos 2.2 e 2.4. Em suma gostaria de juntar os benefícios do eclipse a um ambiente maven, pois o Hudson será o cara que irá baixar do SVN, buildar via maven e fazer deploy em Homologação e/ou produção.

Gostaria de pedir sugestões, indicações de plugins e/ou ferramentas que pudessem facilitar esses pontos que enxergo como pontos que tornam o processo não suave.

Obrigado!