O documento descreve o Maven, uma ferramenta para construir, gerenciar e implantar projetos Java. Ele explica que o Maven torna o processo de construção fácil através de um sistema de construção uniforme (POM), fornece diretrizes para as melhores práticas e permite atualizações fáceis de componentes (dependências).
2. Maven é uma ferramenta para construir,
gerenciar e implantar projetos Java
3. Objetivos
● Tornar o processo de construção fácil
● Fornecer um sistema de construção uniforme : project
object model (POM)
● Prover informações mais claras sobre o projeto
● Diretrizes para as melhores práticas de
desenvolvimento
● Fácil atualização de componentes (Dependências)
6. Dependência
● Uma das características mais importantes do Maven é
o gerenciamento de dependência.
● Com repositório central que cresce cada vez mais,
praticamente podemos encontrar qualquer componente
que o nosso projeto dependa (54.430 artefatos).
● Basta informar a dependência no arquivo de
configuração e o sistema se encarrega de verificar a
compatibilidade e baixar as libs.
http://search.maven.org
8. Preparando o Ambiente
● Baixar
http://maven.apache.org/download.cgi
● Variáveis de ambiente
JAVA_HOME = <path para jdk 1.5 ou superior>
M2_HOME = <path para diretório do Maven>
M2 = %M2_HOME%bin
MAVEN_OPTS (Opcional) = -Xmx512m ...
Java no PATH = %JAVA_HOME%bin
Maven no PATH = %M2%
● Teste do ambiente
java -version
mvn -v
9. Plugin para o Eclipse
http://www.eclipse.org/m2e/
● É recomendado que se use a versão instalada no
lugar da que vem embarcada no Plugin.
10. Arquetipos Maven
● maven-archetype-quickstart
Projeto java simples
● maven-archetype-webapp
Projeto container web java (Plugin Jetty embarcado)
Existem vários outros arquetipos que podem ser
facilmente pesquisados pelo plugin do eclipse
11. Criando um projeto
Linha de Comando:
mvn archetype:generate
-DgroupId=br.edu.ifrn.tads
-DartifactId=mteste
-DarchetypeArtifactId=maven-archetype-webapp
-DinteractiveMode=false
Sobre os parâmetros:
archetype:generate : plugin:objetivo
groupId : grupo (ideia de pacotes do
java)
artifacctId : id do projeto
archetypeArtifactId : id do arquetipo
12. Sobre o código gerado
Princípio básico do Maven “Convenção sobre Configuração”
● Código fonte em ${basedir}/src/main/java
● Recursos em ${basedir}/src/main/resources.
● Testes em ${basedir}/src/test,
● Projeto produz JAR
● Compilar para ${basedir}/target/classes e cria um dstribuível JAR
em ${basedir}/target.
14. Projeto de Exemplo
● Para facilitar a compreensão do arquivo de
configuração, foi criado um projeto de
exemplo que esta hospedado no GitHub
https://github.com/edgardantas/webapp-maven-jetty
15. Construindo / Instalando
● Compilação e instalação
mvn install
● Instação limpa
mvn clean install
● Executar um servidor web
mvn jetty:run
16. Acrescentar JAR ao repositório
A maior parte das bibliotecas livres estão nos repositórios
do maven, contudo, para os casos que não existe, os
JARs podem ser adcionados ao repositório local
mvn install:install-file
-Dfile=sqljdbc4.jar
-DgroupId=com.microsoft.sqlserver
-DartifactId=sqljdbc4
-Dversion=3.0
-Dpackaging=jar