Não se preocupe com arquétipos até mais tarde
Para todas as informações que você precisa saber sobre o Maven, leia alguns dos livros em seu site . No entanto, isso é um pouco exagerado para o que você está tentando alcançar.
Para começar, faça um layout do aplicativo da Web seguindo a estrutura padrão do Maven para aplicativos da Web da seguinte maneira. (Você não precisa de um arquétipo do Maven para isso, são apenas várias pastas padrão, você pode fazer isso em 2 minutos).
src/main/java
- contém seu código Java de produção
src/main/resources
- contém seus recursos do caminho de classe de produção (por exemplo, contextos Spring)
src/main/webapp
- (contém WEB-INF / web.xml, mas nenhuma pasta lib)
src/test/java
- contém seu código Java de teste
src/test/resources
- contém seus recursos de teste (por exemplo, feeds XML de exemplo para teste de serviço da web etc.)
Plugins básicos
O próximo passo é escolher um monte de plugins. Os suspeitos comuns são, obviamente, os que suportam recursos limpos, compilados e recursos (fazem parte do Maven, mas você pode configurá-los). Então você terá o testador de unidade infalível e o plug-in WAR. Isso é suficiente para criar um aplicativo da web muito básico.
Plugins mais avançados
O próximo passo é apresentar os plugins Findbugs e PMD, que fornecerão informações detalhadas ao seu código e relatarão vários problemas em potencial. Você provavelmente desejará ter o JXR para código-fonte de referência cruzada, lista de tags para rastrear tags TODOs e REFACTOR e assim por diante. Sobre tudo...
... Use o plugin Jetty para aplicativos da web
Use o plug-in Jetty para executar seu arquivo WAR no seu IDE para facilitar a depuração. É rápido e pequeno e faz o trabalho muito rápido. Tendo o Jetty como parte de sua compilação Maven, seu projeto pode ser testado em qualquer máquina sem a necessidade de um IDE com alguns servidores complexos configurados. Ele também permite que você declare dependências em outros arquivos WAR, o que significa que você pode gerar um ambiente de trabalho completo que consiste em vários aplicativos da Web, todos com um único comando "mvn clean jetty: run". Isso funciona em qualquer lugar e você pode até fornecer uma configuração de JNDI de teste para que suas fontes de dados injetadas pelo Spring sejam todas configuradas externamente. Se você combinar essa abordagem do Jetty com uma página HTML de demonstração padrão (src/test/resources/demo.html
) você economizará muitas horas do desenvolvedor tentando obter um ambiente local de trabalho. Um comando e pronto. Simples.
Configurando seu IDE
Com o Maven, é fácil, pois todos os garotos grandes o apóiam: Eclipse, Netbeans e, claro, meu Intellij favorito. Basta apontar seu IDE para o pom.xml e ele resolverá todas as dependências listadas para você. Chega de brincar com isso WEB-INF/lib
. No Eclipse, você normalmente usa Arquivo | Importar ... | Projeto Maven | pom.xml.
Integrando com Hudson
Primeiro instale o Hudson (é apenas um aplicativo da web) e, em seguida, direcione seu sistema de controle de versão para que ele verifique a versão apropriada. Sua etapa final é configurá-lo para que ele use o Maven para fazer a compilação. Obviamente, o Maven precisará ser instalado na sua máquina de compilação (supondo que seja diferente da sua máquina de desenvolvimento).
Hudson faz a captura instantânea apenas
Faça com que o Hudson execute compilações de instantâneos e deixe as compilações de liberação para um processo manual. Usar essa abordagem significa que os desenvolvedores podem compartilhar seu código sob uma revisão de instantâneo (por exemplo, 1.0.0-SNAPSHOT) e somente se for capaz de passar a compilação será compartilhado no repositório da equipe. Normalmente, o Hudson executará "mvn clean deploy", embora a inclusão do objetivo "site" também possa fazer parte do seu processo, pois ele criará um pequeno site de projeto para cada build. Os desenvolvedores da equipe terão a compilação instantânea atualizada automaticamente incluída em seu projeto através do processo de gerenciamento de dependências do Maven.
O Hudson fornece uma variedade de plugins que podem suportar todo tipo de métrica. Meu favorito pessoal é acompanhar o número de testes aprovados por projeto ao longo do tempo. É ótimo mostrar à gerência que sua contagem e cobertura de testes unitários estão sempre aumentando.
Diretrizes gerais de configuração
Divida seus repositórios em pelo menos a seguinte estrutura:
- team-release - Todos os seus artefatos de produção liberados vão aqui
- team-snapshot - Todos os seus artefatos de desenvolvimento de snapshot vão aqui
- versão de terceiros - Todas as suas bibliotecas de terceiros de suporte estão aqui (por exemplo, Spring, Hibernate etc)
As contas de usuário do desenvolvedor não devem poder gravar nos repositórios da equipe, instantâneo ou release. Isso permitiria que um desenvolvedor ignorasse Hudson se estivesse com pressa e rapidamente se tornasse a norma.
Sempre baixe as assinaturas de origem, javadocs e SHA para todos os seus terceiros. Jarvana é um excelente explorador de repositórios para todas as classes difíceis de encontrar.
Considere instalar um gerenciador de repositório como o Nexus ou o Artifactory para permitir um melhor controle sobre o seu repositório sempre crescente.