Automação de Build com Apache Maven [email protected].
-
Upload
aurelia-de-figueiredo-moreira -
Category
Documents
-
view
222 -
download
3
Transcript of Automação de Build com Apache Maven [email protected].
![Page 2: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/2.jpg)
Objetivo• Demonstrar o uso da ferramenta Maven no desenvolvimento
de aplicações Java
![Page 3: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/3.jpg)
Agenda• Introdução• Instalação• Configuração• Primeiro projeto• Arquitetura• Integração com Eclipse• Projeto de uma biblioteca (JAR)• Projeto de uma aplicação WAR• Projeto de um componente EJB• Projeto de uma aplicação EAR• Projeto de uma aplicação desktop
![Page 4: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/4.jpg)
Tópicos adicionais• Configurações de rede• Criação de modelos (archetypes)• Criação de distribuições (assembly)• Versionamento
![Page 5: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/5.jpg)
Agenda• Introdução• Instalação• Configuração• Primeiro projeto• Arquitetura• Integração com Eclipse• Projeto de uma biblioteca (JAR)• Projeto de uma aplicação WAR• Projeto de um componente EJB• Projeto de uma aplicação EAR• Projeto de uma aplicação desktop
![Page 6: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/6.jpg)
Introdução• O que é o Maven?• Ferramenta de automação de build• Gerencia o processo de desenvolvimento de produtos (artefatos)
em Java (preferencialmente)• Abordagem declarativa (diferentemente do Ant)• Convenção sobre Configuração• Desenvolvido pelo grupo Apache (suporte do projeto Avalon)
![Page 7: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/7.jpg)
Introdução• Por que usar o Maven?• Padronização do processo de desenvolvimento• Gerenciamento de dependências (bibliotecas)• Compartilhamento de componentes
• Diferentemente de compartilhamento de código/build• Extensível através de plugins• Testes facilitados• Documentação facilitada• Fácil integração com ferramentas de integração contínua e
monitoramento da qualidade do código• Integração com IDE
![Page 8: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/8.jpg)
Agenda• Introdução• Instalação• Configuração• Primeiro projeto• Arquitetura• Integração com Eclipse• Projeto de uma biblioteca (JAR)• Projeto de uma aplicação WAR• Projeto de um componente EJB• Projeto de uma aplicação EAR• Projeto de uma aplicação desktop
![Page 9: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/9.jpg)
Instalação• Baixar distribuição• http://maven.apache.org/download.html
• Descompactar• Configurar variáveis de ambiente• Windows
• M2_HOME=C:\apache-maven-3.0.4 (opcional)• JAVA_HOME=<pasta de instalação do JDK>• PATH=%M2_HOME%\bin;%JAVA_HOME%\bin;%PATH%
• Testar instalação• PROMPT> mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 06:44:56-0200)Maven home: C:\Program Files\Java\apache-maven-3.0.4Java version: 1.7.0_03, vendor: Oracle CorporationJava home: C:\Program Files\Java\jdk1.7.0_03-x64\jreDefault locale: pt_BR, platform encoding: Cp1252OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
![Page 10: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/10.jpg)
Agenda• Introdução• Instalação• Configuração• Primeiro projeto• Arquitetura• Integração com Eclipse• Projeto de uma biblioteca (JAR)• Projeto de uma aplicação WAR• Projeto de um componente EJB• Projeto de uma aplicação EAR• Projeto de uma aplicação desktop
![Page 11: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/11.jpg)
Configuração
Configuração global Configuração
de usuário
![Page 12: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/12.jpg)
Configuração• settings.xml• Proxies, Autenticação, Repositórios, Mirrors, Profiles, ...
![Page 13: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/13.jpg)
Agenda• Introdução• Instalação• Configuração• Primeiro projeto• Arquitetura• Integração com Eclipse• Projeto de uma biblioteca (JAR)• Projeto de uma aplicação WAR• Projeto de um componente EJB• Projeto de uma aplicação EAR• Projeto de uma aplicação desktop
![Page 14: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/14.jpg)
Primeiro projeto• PROMPT> mvn archetype:create -DgroupId=curso.maven -DartifactId=primeiro-projeto[INFO] Scanning for projects...[INFO][INFO] ------------------------------------------------------------------------[INFO] Building Maven Stub Project (No POM) 1[INFO] ------------------------------------------------------------------------[INFO][INFO] --- maven-archetype-plugin:2.2:create (default-cli) @ standalone-pom ---[WARNING] This goal is deprecated. Please use mvn archetype:generate instead[INFO] Defaulting package to group ID: curso.maven[INFO] ----------------------------------------------------------------------------[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:RELEASE[INFO] ----------------------------------------------------------------------------[INFO] Parameter: groupId, Value: curso.maven[INFO] Parameter: packageName, Value: curso.maven[INFO] Parameter: package, Value: curso.maven[INFO] Parameter: artifactId, Value: primeiro-projeto[INFO] Parameter: basedir, Value: C:\Workspaces\projetos[INFO] Parameter: version, Value: 1.0-SNAPSHOT[INFO] project created from Old (1.x) Archetype in dir: C:\Workspaces\projetos\primeiro-projeto[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 3.057s[INFO] Finished at: Tue May 15 08:39:01 BRT 2012[INFO] Final Memory: 12M/162M[INFO] ------------------------------------------------------------------------
![Page 15: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/15.jpg)
Primeiro projeto
![Page 16: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/16.jpg)
Primeiro projeto
![Page 17: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/17.jpg)
Primeiro projeto
PROMPT> mvn archetype:create
![Page 18: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/18.jpg)
Primeiro projetoPROMPT>mvn install[INFO] Scanning for projects...[INFO] ------------------------------------------------------------------------[INFO] Building primeiro-projeto 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ primeiro-projeto ---[INFO] Compiling 1 source file to C:\projetos\primeiro-projeto\target\classes[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ primeiro-projeto ---[INFO] Compiling 1 source file to C:\projetos\primeiro-projeto\target\test-classes[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ primeiro-projeto ---[INFO] Surefire report directory: C:\projetos\primeiro-projeto\target\surefire-reports------------------------------------------------------- T E S T S-------------------------------------------------------Running curso.maven.AppTestTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec
Results :Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ primeiro-projeto ---[INFO] Building jar: C:\projetos\primeiro-projeto\target\primeiro-projeto-1.0-SNAPSHOT.jar[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ primeiro-projeto ---[INFO] Installing C:\projetos\primeiro-projeto\target\primeiro-projeto-1.0-SNAPSHOT.jar toC:\Users\hednilson\.m2\repository\curso\maven\primeiro-projeto\1.0-SNAPSHOT\primeiro-projeto-1.0-SNAPSHOT.jar[INFO] Installing C:\projetos\primeiro-projeto\pom.xml toC:\Users\hednilson\.m2\repository\curso\maven\primeiro-projeto\1.0-SNAPSHOT\primeiro-projeto-1.0-SNAPSHOT.pom[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------
![Page 19: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/19.jpg)
Primeiro projeto
![Page 20: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/20.jpg)
Agenda• Introdução• Instalação• Configuração• Primeiro projeto• Arquitetura• Integração com Eclipse• Projeto de uma biblioteca (JAR)• Projeto de uma aplicação WAR• Projeto de um componente EJB• Projeto de uma aplicação EAR• Projeto de uma aplicação desktop
![Page 21: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/21.jpg)
Arquitetura• Núcleo• Leitura de XML• Gerenciador de repositório de artefatos• Gerenciador de ciclo de vida e plugins
![Page 22: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/22.jpg)
Repositório local
![Page 23: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/23.jpg)
Outros repositórios
![Page 24: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/24.jpg)
Repositórios internos
![Page 25: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/25.jpg)
Repositórios externos
![Page 26: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/26.jpg)
Plugins• As principais funcionalidades do Maven são providas através
de plugins• Um plugin pode executar mais de uma atividade• goal implementado por um Mojo
• Execução de goals• mvn plugin:goal• mvn plugin:goal –Dparametro=xyz
• Ex:• mvn help:effective-settings• mvn help:describe –Dplugin=compiler
• http://maven.apache.org/plugins
![Page 27: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/27.jpg)
Ciclos de vida e fases• Clean• pre-clean• clean• post-clean
• Build (default)• Site• pre-site• site• post-site• deploy-site
![Page 28: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/28.jpg)
Ciclo de vida default (build)e suas fases
![Page 29: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/29.jpg)
Ciclo de vida default (build-jar)
![Page 30: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/30.jpg)
POM – Project Object Model
![Page 31: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/31.jpg)
Super POM
![Page 32: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/32.jpg)
Super POM
![Page 33: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/33.jpg)
Agenda• Introdução• Instalação• Configuração• Primeiro projeto• Arquitetura• Integração com Eclipse• Projeto de uma biblioteca (JAR)• Projeto de uma aplicação WAR• Projeto de um componente EJB• Projeto de uma aplicação EAR• Projeto de uma aplicação desktop
![Page 34: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/34.jpg)
Integração com Eclipse• Plugin Maven:• maven-eclipse-plugin
• Gera arquivos do eclipse a partir do pom.xml• .project, .classpath, .settings, ...
• Comando de linha• mvn eclipse:eclipse• Podem ser criados launchers
• http://maven.apache.org/plugins/maven-eclipse-plugin/
• Plugin Eclipse:• m2eclipse
• Configura projeto no eclipse a partir do pom.xml• http://www.sonatype.org/m2eclipse
![Page 35: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/35.jpg)
Instalação do m2eclipse
![Page 36: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/36.jpg)
Configuração do m2eclipse
![Page 37: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/37.jpg)
Criando um projeto
![Page 38: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/38.jpg)
Importando um projeto
![Page 39: Automação de Build com Apache Maven hednilson@gmail.com.](https://reader036.fdocument.pub/reader036/viewer/2022062522/570638501a28abb8238f88c9/html5/thumbnails/39.jpg)
Referências• http://maven.apache.org• http://www.sonatype.org• http://
resumotecnico.blogspot.com.br/2011/09/repositorios-maven-em-5-minutos.html