Maven
Maven 
O que é? 
● Convenção sobre configuração 
Maven tenta evitar, tanto quanto possível configuração, escolhendo valores padrão do mundo real e 
fornecimento de modelos de projeto (archtypes); 
● Gerenciamento de dependência 
É possível definir as dependências para outros projetos. Durante o build, a ferramenta resolve as 
dependências e, se necessário, também faz o build dos projetos dependentes; 
● Repositório central 
Dependências do projeto pode ser carregado a partir do sistema de arquivos local, da Internet ou de 
repositórios públicos. A empresa por trás do projeto Maven também fornece um repositório central 
chamado Maven Central.
Maven 
Template para Projetos 
Você pode criar um projeto, executando o goal generate do plugin do archetype: $ mvn archetype: 
generate. Isso inicia o processo de gerar no modo interativo e pede-lhe para várias configurações. 
groupId: Define um nome único da organização ou grupo que criou o projeto. Este é normalmente 
um nome de domínio. Para a geração do groupId define também o pacote da classe principal. 
artifactId: Define o nome exclusivo do artefato. No nosso caso é a mesma coisa como o groupId, 
mas também poderia ser um nome simples como "SuperCalculadora". A geração utiliza este valor 
como nome da pasta raiz do projeto. 
packaging: Define o processo de empacotamento. Isto poderia ser, por exemplo jar, war ou eap. 
Este ajuste tem influência sobre todo o ciclo de vida do projeto. 
version: Isso define a versão dos artefatos gerados a partir de nosso projeto.
Maven 
Interface Comum 
Um projeto em maven se torna uma interface comum para muitas tecnologias, como IDEs. Projetos 
gerados no maven tem o seu archetype definido e por esse motivo pode ser migrado para outras 
IDEs sem problemas com configurações próprias da IDE.
Maven 
Configuração 
● Project Object Model (POM) 
A configuração de um projeto Maven é feito através de Project Object Model, que é representado pelo 
arquivo pom.xml. 
Por padrão, este é o único arquivo de configuração necessário para o processo de build. Todo o build 
segue um ciclo de vida específico. Maven vem com um ciclo de vida padrão que inclui as fases de 
build mais comuns, como a compilação, testes e empacotamento. Todas as fases são compostas de 
goals plugin. Goals plugin são tarefas que são mais específicas do que as fases. Assim, uma fase 
pode ser definida para executar mais de um goal plugin. 
O resultado de uma compilação é chamada de artefato. Um artefato, por exemplo, pode ser um 
executável ou um arquivo de documentos.
Maven 
Instalação 
Para uma instalação manual você pode baixar Maven a partir do site. 
Extraia o download para uma pasta selecionada no seu computador e adicione o relative path 
M2_HOME apontando para este diretório. Adicionar M2_HOME / bin a sua variável PATH. 
Para ver os detalhes da instalação de outro sistema, siga o guia do site do projeto Maven.
Maven 
Validar Instalação 
Para validar que o Maven foi instalado corretamente, abra um console e use o seguinte comando: 
mvn -version. 
Você deverá receber feedback como a saída da versão do Maven que você instalou.
Maven 
Utilizando Maven como um Build Tool 
Maven é uma ferramenta de linha de comando que será iniciado no terminal de comandos. 
Para executar uma compilação com Maven, você só tem que apontar a sua linha de comando para a 
pasta que inclui o arquivo pom.xml e execute o comando mvn install. 
Com esta única linha, o ciclo de vida do maven será iniciado. Assim, a configuração do pom.xml será 
carregada e todas as suas dependências serão resolvidas. Depois disso, Maven tenta carregar a 
versão mais recente das dependencias do repositório central em um repositório local, que é colocado 
como .m2 / repository no diretório home do usuário. Como parte do ciclo de vida, a ferramenta de 
build compila os fontes e testes, executa os testes e empacota os arquivos compilados, por exemplo, 
como um JAR. Como última etapa, o artefato resultante será gravado no repositório local, para que 
possa ser utilizado por outros projetos. 
Maven cria o resultado de compilação na pasta de destino. Se você executar o comando mvn instalar, 
Maven compila o código-fonte, constrói o resultado, por exemplo, um arquivo JAR.
Maven 
Archetypes 
● appfuse-basic-jsf – AppFuse archetype para a criação de uma aplicação web com Hibernate, 
Spring e JSF. 
● maven-archetype-j2ee-simple – Uma aplicação simples J2EE. 
● jpa-maven-archetype – Aplicação JPA. 
● struts2-archetype-starter – Struts 2 Archetype. 
Lista de archetypes: 
http://docs.codehaus.org/display/MAVENUSER/Archetypes+List
Maven 
Plugins 
O framework é estruturado e funciona em cima de um conjunto de plug-ins que, individualmente, são 
os responsáveis por todas as tarefas executadas durante o processo de build. Assim, plug-ins 
executam desde a ação mais simples de todas, que é a limpeza do projeto, até tarefas muito mais 
elaboradas, como a criação de um EAR. 
O Maven possui uma infinidade de plug-ins “prontos para uso” e muitos outros são fornecidos por 
terceiros (soluções open-source ou proprietárias). Apesar disso, muitas vezes pode haver a 
necessidade de se incluir uma tarefa especial no ciclo de construção do aplicativo, algo particular a 
um determinado projeto ou empresa e cuja automação pode facilitar (e muito) a vida do 
desenvolvedor. Nesse contexto é importante entender como os plug-ins funcionam e como podemos 
construí-los, tirando assim ainda mais proveito do framework.
Maven 
Exercicio - Criar e Gerar um projeto Java 
Neste exercício, você irá cria um projeto Java com Maven e fazer o build desse projeto.
Maven 
Geração do Projeto 
Neste projeto nós utilizamos as funcionalidade scaffoding do Maven para criar um projeto Java. Para 
evitar o modo interativo (em que Maven pede os parâmetros necessários), todas as propriedades 
necessárias são passadas diretamente para o comando em sua criação. Selecione uma pasta onde 
irá ser criado projeto e insira esse comando. 
$ mvn archetype:generate -DgroupId=com.consulters.build.maven.java - 
DartifactId=consulters-zeus -DarchetypeArtifactId=maven-archetype-quickstart - 
DinteractiveMode=false 
Agora dê uma olhada como ficou a estrutura do projeto em sua máquina. 
Maven criou uma classe App.java na pasta ./src/main/, que é apenas um programa simples "Hello 
World". Também criou diretamente uma classe de teste válida em ./src/test/, com um dumb test. Na 
pasta raiz, há o nosso arquivo pom.xml.
Maven 
Rodando o Build 
Assim, geramos toda uma estrutura de projeto com código fonte e um arquivo pom.xml. Agora, 
queremos criar um executável. Para essa mudança em nosso projeto precisamos realizar o seguinte 
comando Maven. 
$ mvn compile 
Como resultado, Maven foi executado em todas as fases do ciclo de vida do projeto, que foram 
necessários para a fase de empacotamento. Resolveu as dependências, carregou o artefato JUnit em 
seu repositório local e fez o build dos fontes. Ele mesmo executou o teste do JUnit. Todos os arquivos 
gerados foram colocados na pasta de destino na raiz do projeto. 
Agora você pode executar o pacote. 
$ java -cp target/com.vogella.build.maven.java-1.0-SNAPSHOT.jar com.vogella.build. 
maven.java.App Hello World!
Maven 
Rodar Fases Específicas 
Assim, geramos toda uma estrutura de projeto com código fonte e um arquivo pom.xml. Agora, 
queremos obter um executável fora do nosso projeto. Para conseguir isso, temos que mudarna raiz 
do projeto e fazer o Maven gerar o pacote com a fase de empacotamento como objetivo. 
$ cd consulter-zeus 
$ mvn package 
Em vez de executar um build completo, também é possível apenas executar as fases individuais de 
um ciclo de vida do projeto. 
Por exemplo, se são necessárias apenas os resultados do teste: 
$ mvn test 
Para limpar o projeto e assim remover os arquivos gerados na pasta ./target/: 
$ mvn clean
Maven 
Referencias 
http://maven.apache.org/guides/getting-started/index.html 
http://en.wikipedia.org/wiki/Apache_Maven 
http://maven.apache.org/guides/mini/guide-ide-eclipse.html 
http://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html 
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Aula maven

  • 1.
  • 2.
    Maven O queé? ● Convenção sobre configuração Maven tenta evitar, tanto quanto possível configuração, escolhendo valores padrão do mundo real e fornecimento de modelos de projeto (archtypes); ● Gerenciamento de dependência É possível definir as dependências para outros projetos. Durante o build, a ferramenta resolve as dependências e, se necessário, também faz o build dos projetos dependentes; ● Repositório central Dependências do projeto pode ser carregado a partir do sistema de arquivos local, da Internet ou de repositórios públicos. A empresa por trás do projeto Maven também fornece um repositório central chamado Maven Central.
  • 3.
    Maven Template paraProjetos Você pode criar um projeto, executando o goal generate do plugin do archetype: $ mvn archetype: generate. Isso inicia o processo de gerar no modo interativo e pede-lhe para várias configurações. groupId: Define um nome único da organização ou grupo que criou o projeto. Este é normalmente um nome de domínio. Para a geração do groupId define também o pacote da classe principal. artifactId: Define o nome exclusivo do artefato. No nosso caso é a mesma coisa como o groupId, mas também poderia ser um nome simples como "SuperCalculadora". A geração utiliza este valor como nome da pasta raiz do projeto. packaging: Define o processo de empacotamento. Isto poderia ser, por exemplo jar, war ou eap. Este ajuste tem influência sobre todo o ciclo de vida do projeto. version: Isso define a versão dos artefatos gerados a partir de nosso projeto.
  • 4.
    Maven Interface Comum Um projeto em maven se torna uma interface comum para muitas tecnologias, como IDEs. Projetos gerados no maven tem o seu archetype definido e por esse motivo pode ser migrado para outras IDEs sem problemas com configurações próprias da IDE.
  • 5.
    Maven Configuração ●Project Object Model (POM) A configuração de um projeto Maven é feito através de Project Object Model, que é representado pelo arquivo pom.xml. Por padrão, este é o único arquivo de configuração necessário para o processo de build. Todo o build segue um ciclo de vida específico. Maven vem com um ciclo de vida padrão que inclui as fases de build mais comuns, como a compilação, testes e empacotamento. Todas as fases são compostas de goals plugin. Goals plugin são tarefas que são mais específicas do que as fases. Assim, uma fase pode ser definida para executar mais de um goal plugin. O resultado de uma compilação é chamada de artefato. Um artefato, por exemplo, pode ser um executável ou um arquivo de documentos.
  • 6.
    Maven Instalação Parauma instalação manual você pode baixar Maven a partir do site. Extraia o download para uma pasta selecionada no seu computador e adicione o relative path M2_HOME apontando para este diretório. Adicionar M2_HOME / bin a sua variável PATH. Para ver os detalhes da instalação de outro sistema, siga o guia do site do projeto Maven.
  • 7.
    Maven Validar Instalação Para validar que o Maven foi instalado corretamente, abra um console e use o seguinte comando: mvn -version. Você deverá receber feedback como a saída da versão do Maven que você instalou.
  • 8.
    Maven Utilizando Mavencomo um Build Tool Maven é uma ferramenta de linha de comando que será iniciado no terminal de comandos. Para executar uma compilação com Maven, você só tem que apontar a sua linha de comando para a pasta que inclui o arquivo pom.xml e execute o comando mvn install. Com esta única linha, o ciclo de vida do maven será iniciado. Assim, a configuração do pom.xml será carregada e todas as suas dependências serão resolvidas. Depois disso, Maven tenta carregar a versão mais recente das dependencias do repositório central em um repositório local, que é colocado como .m2 / repository no diretório home do usuário. Como parte do ciclo de vida, a ferramenta de build compila os fontes e testes, executa os testes e empacota os arquivos compilados, por exemplo, como um JAR. Como última etapa, o artefato resultante será gravado no repositório local, para que possa ser utilizado por outros projetos. Maven cria o resultado de compilação na pasta de destino. Se você executar o comando mvn instalar, Maven compila o código-fonte, constrói o resultado, por exemplo, um arquivo JAR.
  • 9.
    Maven Archetypes ●appfuse-basic-jsf – AppFuse archetype para a criação de uma aplicação web com Hibernate, Spring e JSF. ● maven-archetype-j2ee-simple – Uma aplicação simples J2EE. ● jpa-maven-archetype – Aplicação JPA. ● struts2-archetype-starter – Struts 2 Archetype. Lista de archetypes: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List
  • 10.
    Maven Plugins Oframework é estruturado e funciona em cima de um conjunto de plug-ins que, individualmente, são os responsáveis por todas as tarefas executadas durante o processo de build. Assim, plug-ins executam desde a ação mais simples de todas, que é a limpeza do projeto, até tarefas muito mais elaboradas, como a criação de um EAR. O Maven possui uma infinidade de plug-ins “prontos para uso” e muitos outros são fornecidos por terceiros (soluções open-source ou proprietárias). Apesar disso, muitas vezes pode haver a necessidade de se incluir uma tarefa especial no ciclo de construção do aplicativo, algo particular a um determinado projeto ou empresa e cuja automação pode facilitar (e muito) a vida do desenvolvedor. Nesse contexto é importante entender como os plug-ins funcionam e como podemos construí-los, tirando assim ainda mais proveito do framework.
  • 11.
    Maven Exercicio -Criar e Gerar um projeto Java Neste exercício, você irá cria um projeto Java com Maven e fazer o build desse projeto.
  • 12.
    Maven Geração doProjeto Neste projeto nós utilizamos as funcionalidade scaffoding do Maven para criar um projeto Java. Para evitar o modo interativo (em que Maven pede os parâmetros necessários), todas as propriedades necessárias são passadas diretamente para o comando em sua criação. Selecione uma pasta onde irá ser criado projeto e insira esse comando. $ mvn archetype:generate -DgroupId=com.consulters.build.maven.java - DartifactId=consulters-zeus -DarchetypeArtifactId=maven-archetype-quickstart - DinteractiveMode=false Agora dê uma olhada como ficou a estrutura do projeto em sua máquina. Maven criou uma classe App.java na pasta ./src/main/, que é apenas um programa simples "Hello World". Também criou diretamente uma classe de teste válida em ./src/test/, com um dumb test. Na pasta raiz, há o nosso arquivo pom.xml.
  • 13.
    Maven Rodando oBuild Assim, geramos toda uma estrutura de projeto com código fonte e um arquivo pom.xml. Agora, queremos criar um executável. Para essa mudança em nosso projeto precisamos realizar o seguinte comando Maven. $ mvn compile Como resultado, Maven foi executado em todas as fases do ciclo de vida do projeto, que foram necessários para a fase de empacotamento. Resolveu as dependências, carregou o artefato JUnit em seu repositório local e fez o build dos fontes. Ele mesmo executou o teste do JUnit. Todos os arquivos gerados foram colocados na pasta de destino na raiz do projeto. Agora você pode executar o pacote. $ java -cp target/com.vogella.build.maven.java-1.0-SNAPSHOT.jar com.vogella.build. maven.java.App Hello World!
  • 14.
    Maven Rodar FasesEspecíficas Assim, geramos toda uma estrutura de projeto com código fonte e um arquivo pom.xml. Agora, queremos obter um executável fora do nosso projeto. Para conseguir isso, temos que mudarna raiz do projeto e fazer o Maven gerar o pacote com a fase de empacotamento como objetivo. $ cd consulter-zeus $ mvn package Em vez de executar um build completo, também é possível apenas executar as fases individuais de um ciclo de vida do projeto. Por exemplo, se são necessárias apenas os resultados do teste: $ mvn test Para limpar o projeto e assim remover os arquivos gerados na pasta ./target/: $ mvn clean
  • 15.
    Maven Referencias http://maven.apache.org/guides/getting-started/index.html http://en.wikipedia.org/wiki/Apache_Maven http://maven.apache.org/guides/mini/guide-ide-eclipse.html http://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html