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.
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.
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>
Gerenciamento de Dependências
Exemplo:
<dependencies>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.5</version>
</dependency>
<dependency>
...
</dependency>
</dependencies>
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.
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.
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.
Parte prática!
l…

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 builddo 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>
  • 4.
  • 5.
    3 Motivos parausar 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 usaro 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.
  • 8.

Notas do Editor