O documento descreve o que é o Maven, uma ferramenta open source que auxilia no gerenciamento e construção de projetos Java, gerenciando dependências, automatizando builds e testes, e fornecendo relatórios. O Maven realiza etapas como compilação, teste, empacotamento e implantação. Ele gerencia dependências através do arquivo pom.xml.
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Maven e Nexus. O que são essas ferramentas?
1. O que é o Maven?
Maven é uma ferramenta, open source da apache, que auxilia
no gerenciamento, construção, e implantação de projetos.
O Maven auxilia no processo de gerenciamento de
dependências, automação de build, geração de relatórios e
também provê ferramentas para avaliação da qualidade do
projeto.
2. Etapas de build do Maven
•compile – compila o código fonte do projeto.
•test – executa os testes unitários do código compilado, usando uma
ferramenta de testes unitários, como o junit.
•package – empacota o código compilado de acordo com o
empacotamento escolhido, por exemplo, em JAR.
•integration-test – processa e faz o deploy do pacote em um
ambiente onde os testes de integração podem ser rodados.
•install – instala o pacote no repositório local, para ser usado como
dependência de outros projetos locais.
•deploy – feito em ambiente de integração ou de release, copia o
pacote final para um repositório remoto para ser compartilhado entre
desenvolvedores e projetos.
3. Gerenciamento de Dependências
• O gerenciamento de dependências é uma das principais funcionalidades do
Maven, onde toda a configuração do projeto é feita dentro do arquivo
“pom.xml” (intitulado de forma geral como o coração do maven) onde cada
dependência do projeto é colocadas individualmente dentro da tag
“<dependency>”, e todas estas dependências estarão dentro da tag
“<dependencies>”.
•Exemplo:
<project>
<groupId>br.com.empresa</groupId>
<artifactId>projeto</artifactId>
<version>2.0</version>
<packing>war</packing>
</project>
5. 3 Motivos para usar o Maven
•Build: O Maven vai fazer a build de sua solução. Ele utiliza muito o conceito de
convenção sobre configuração. Logo, não será necessário configurar várias coisas
que você configuraria com ant como o diretório de fontes, se você colocar seus
artefatos nas estruturas padrões do maven.
•Gerencia de Dependências: Quando usamos muitos frameworks em Java através
de vários projetos, gerenciar esses artefatos e controlar as suas versões é um
verdadeiro caos. O maven provê a gerencia de jar's, bem como de plugins. Esses
artefatos não ficam em controle de versão. Isso mesmo você não cria uma pasta
*lib* e coloca os jars lá dentro, eles ficam no repositório local do maven.
•Foco na Qualidade: O Maven incentiva que se criem testes unitários. De forma
quando você faz o build ou gera um deploy em um servidor, nesses momentos ele
roda todos os testes unitários. Caso algum teste unitário falhar ele aborda o
build/deploy. Essa é uma excelente política para forçar os testes e a qualidade de
software.
6. O Que é o Nexus?
•O Nexus é um repositório de artefatos Maven e está entre os
melhores e mais confiáveis repositórios Maven disponíveis. O Nexus é
ser Open Source, possui uma boa documentação, apresenta um bom
nível de segurança e controle de acesso, e armazena os artefatos no
sistema de arquivos.
•O Nexus atua como um proxy para a equipe de desenvolvimento,
onde as dependências serão solicitadas para o Nexus, caso ele não
possua a dependência solicitada ele se encarrega de busca-las e
armazenar em um repositório local, e na próxima vez que a mesma
dependência for solicitada, o Nexus disponibiliza a dependência
baixada anteriormente, não indo na internet efetuar o download
novamente.
7. Motivos para usar o Nexus
•O repositório será o local onde os snapshots dos artefatos serão
guardados e recuperados pelos diversos membros da equipe;
•O repositório servirá como cache dos artefatos externos, evitando que
se acesse sempre repositórios muito utilizados como Maven Central;
•É possível criar proxies para os repositórios externos, de forma que os
desenvolvedores utilizem sempre o mesmo repositório, sem ter que se
preocupar em mudar a configuração quando um novo repositório
externo é incluído;
•O repositório pode ser protegido por um controle de acesso, evitando
que pessoas não autorizadas tenham acesso a artefatos que não são
públicos.