SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Jocsa Rosendo
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Testes Funcionais com Selenium
Testes Funcionais com Selenium Testes Funcionais com Selenium
Testes Funcionais com Selenium Mayron Cachina
 
Eclipse user guide
Eclipse user guideEclipse user guide
Eclipse user guideLucas Cruz
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaWandesson Soares
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_frameworkMilton Rodrigues
 
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonSuporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonRicardo Ferreira
 

Mais procurados (20)

Apresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache MavenApresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache Maven
 
Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Introdução ao Maven
Introdução ao MavenIntrodução ao Maven
Introdução ao Maven
 
Maven - Aula 05
Maven - Aula 05Maven - Aula 05
Maven - Aula 05
 
Maven - Aula 03
Maven - Aula 03Maven - Aula 03
Maven - Aula 03
 
Maven - Aula 01
Maven - Aula 01Maven - Aula 01
Maven - Aula 01
 
Maven - Aula 04
Maven  - Aula 04Maven  - Aula 04
Maven - Aula 04
 
Maven - Aula 02
Maven - Aula 02Maven - Aula 02
Maven - Aula 02
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker
DockerDocker
Docker
 
Maven 2
Maven 2Maven 2
Maven 2
 
Testes Funcionais com Selenium
Testes Funcionais com Selenium Testes Funcionais com Selenium
Testes Funcionais com Selenium
 
Eclipse user guide
Eclipse user guideEclipse user guide
Eclipse user guide
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
 
Precisamos falar sobre Gradle
Precisamos falar sobre GradlePrecisamos falar sobre Gradle
Precisamos falar sobre Gradle
 
Maven
MavenMaven
Maven
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonSuporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
 

Semelhante a Introdução ao Maven: Gerenciador de Dependências e Build Tool

Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: IntroduçãoJugVale
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e HudsonRodrigo Branas
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do MavenAllan Alves
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com MavenEdgar Dantas
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
Quick intro to Apache Maven
Quick intro to Apache MavenQuick intro to Apache Maven
Quick intro to Apache MavenInformantTalks
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Globalcode
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e mavenJeison Barros
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation EvolvedMarcelo Diniz
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação ISidney Roberto
 
Introdução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebIntrodução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebCícero Quarto
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Marcus Carvalho
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 

Semelhante a Introdução ao Maven: Gerenciador de Dependências e Build Tool (20)

Apache maven
Apache mavenApache maven
Apache maven
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e Hudson
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do Maven
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com Maven
 
Introdução a projetos baseados em apache maven
Introdução a projetos baseados em apache mavenIntrodução a projetos baseados em apache maven
Introdução a projetos baseados em apache maven
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Quick intro to Apache Maven
Quick intro to Apache MavenQuick intro to Apache Maven
Quick intro to Apache Maven
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e maven
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation Evolved
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Alm open source
Alm open sourceAlm open source
Alm open source
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
 
Introdução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebIntrodução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide Web
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 

Mais de Guilherme Magalhães (8)

Data Driven AI Company
Data Driven AI CompanyData Driven AI Company
Data Driven AI Company
 
Chatbot & big data
Chatbot & big dataChatbot & big data
Chatbot & big data
 
Treinamento Agile - Scrum Fundamentos
Treinamento Agile - Scrum FundamentosTreinamento Agile - Scrum Fundamentos
Treinamento Agile - Scrum Fundamentos
 
Tecnologias zeus
Tecnologias zeusTecnologias zeus
Tecnologias zeus
 
Ambiente java
Ambiente javaAmbiente java
Ambiente java
 
Java oo - aula 01
Java   oo - aula 01Java   oo - aula 01
Java oo - aula 01
 
BDD - aula
BDD - aulaBDD - aula
BDD - aula
 
Java aula 1
Java   aula 1Java   aula 1
Java aula 1
 

Introdução ao Maven: Gerenciador de Dependências e Build Tool

  • 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 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.
  • 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 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.
  • 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 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.
  • 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 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.
  • 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 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.
  • 13. 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!
  • 14. 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
  • 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