SlideShare uma empresa Scribd logo
X Bemobi Tech Tal k
Maven
Di ego Magal hães 22/ 02/ 2013
Definição
 Mais do que uma simples ferramenta de build
 Promove convention over configuration
 Hierárquico (≠ ANT)
Bemobi Tech Tal k Dat a: 09/11/2012
POM e Artefatos
 Planta do seu build, todas as configurações
 Geração de um ou mais artefatos por build (Normalmente um)
 Identificação via artifactId, groupId e versão
 Versões “-SNAPSHOT”
 Artefatos são guardados em repositórios locais/remotos
Bemobi Tech Tal k Dat a: 09/11/2012
POM e Artefatos
 Herança através de um SUPER POM (Parent POM)
 Definição de bibliotecas atrás de dependencyManagement
 Definição de regras, reporters e formatadores
 Perfis de execução
Bemobi Tech Tal k Dat a: 09/11/2012
Build dos seus projetos
 Goal é uma única ação
 Cada Phase é uma coleção de Goals
 O ciclo de vida do maven é composto por uma sequência de Phases
 Plugins disponibilizam seus próprios Goals, que por sua vez podem ser
incluidos em Phases
Bemobi Tech Tal k Dat a: 09/11/2012
Archetypes
 Templates de projetos
 Use um ou construa a partir de mvn archetype:create-from-project
 Acaba com a bagunça do ctrl+c e ctrl+v dos “projetos base”
Bemobi Tech Tal k Dat a: 09/11/2012
Dependências
 São guardadas em repositórios (local – mvn install ou remoto – mvn deploy)
 Referências a repositórios podem estar no POM ou no settings.xml
 Como o maven resolve qual dependência usar? A mais próxima!
Bemobi Tech Tal k Dat a: 09/11/2012
1 2
3
4
Dependências
 Use *Management (DependencyManagement, PluginManagement etc)
 Herança de versões de bibliotecas e plugins
Bemobi Tech Tal k Dat a: 09/11/2012
Parent Pom Pom dos projetos filhos
Integração com SCM
 mvn release:prepare
• versões em todos os poms perdem o sufixo “-SNAPSHOT”
• cria a tag no SCM da versão
 mvn release:perform
• Faz o deploy da tag no svn
• mvn deploy
• atualiza os POMs para a próxima versão de desenvolvimento (Snapshot)
Bemobi Tech Tal k Dat a: 09/11/2012
Integração com SCM
 mvn release:prepare – versões em todos os poms perdem o sufixo “-
SNAPSHOT”, cria a tag no SCM da versão
 mvn release:perform– Faz o deploy da tag no svn, mvn deploy e atualiza
os POMs para a próxima versão de desenvolvimento (Snapshot)
Bemobi Tech Tal k Dat a: 09/11/2012
Rodando sua aplicação
 Rodar qualquer main class de java ou ferramenta externa
• mvn exec:java –Dexec.mainClass=“com.bemobi.teste”
 Cria um ambiente de classpath a partir das dependencias do projeto
 Usamos para testes (jetty:run)
Bemobi Tech Tal k Dat a: 09/11/2012
Integrando com legado
 Suporta integração com ANT
 Mvn ant:ant
• build.xml
• maven-build.xml
• maven-build.properties
 Ideal para fazer coisas arbitrária no ciclo do maven (copiar arquivos,
gerar output no console etc)
Bemobi Tech Tal k Dat a: 09/11/2012
Sites e Relatórios
 Site com changelogs, notas, javadoc e outros relatórios
 Não existe mais seção reporting (maven 2), agora plugins geram
relatórios
• Javadoc
• Java XRef
• Tag List
• Project Info
• Check Style
• Surefire
• PMD
• FindBugs
• Sonar
• Cobertura
• Versions
Bemobi Tech Tal k Dat a: 09/11/2012
Dúvidas?
Bemobi Tech Tal k Dat a: 09/11/2012
Fim
Bemobi Tech Tal k Dat a: 09/11/2012

Mais conteúdo relacionado

Mais procurados

Automatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsAutomatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com Jenkins
Felipe Santos
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
Stefan Teixeira
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
Douglas Matoso
 
Cucumber
CucumberCucumber
Cucumber
Rafael Gióia
 
JavaFX Mobile
JavaFX MobileJavaFX Mobile
JavaFX Mobile
Claudiney Marques
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
Benicio Ávila
 
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
Régis Eduardo Weizenmann Gregol
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Criciúma Dev
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
Benicio Ávila
 
Maven - Aula 01
Maven - Aula 01Maven - Aula 01
Maven - Aula 01
Édipo Daniel Aragão
 
Criando Projetos Open Source
Criando Projetos Open SourceCriando Projetos Open Source
Criando Projetos Open Source
Vitor Pamplona
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
Renato Groff
 
Maven - Aula 03
Maven - Aula 03Maven - Aula 03
Maven - Aula 03
Édipo Daniel Aragão
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)
Nelson Glauber Leal
 
Maven - Aula 02
Maven - Aula 02Maven - Aula 02
Maven - Aula 02
Édipo Daniel Aragão
 
Vraptor no Heroku
Vraptor no HerokuVraptor no Heroku
Vraptor no Heroku
Rodolfo Liviero
 
Maven - Aula 06
Maven  - Aula 06Maven  - Aula 06
Maven - Aula 06
Édipo Daniel Aragão
 
Criando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraCriando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O Fedora
Allisson Azevedo
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
s4nx
 
Preparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularPreparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angular
Nize Costa
 

Mais procurados (20)

Automatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com JenkinsAutomatização de Infraestrutura com Jenkins
Automatização de Infraestrutura com Jenkins
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Cucumber
CucumberCucumber
Cucumber
 
JavaFX Mobile
JavaFX MobileJavaFX Mobile
JavaFX Mobile
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
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
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Maven - Aula 01
Maven - Aula 01Maven - Aula 01
Maven - Aula 01
 
Criando Projetos Open Source
Criando Projetos Open SourceCriando Projetos Open Source
Criando Projetos Open Source
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
Maven - Aula 03
Maven - Aula 03Maven - Aula 03
Maven - Aula 03
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)
 
Maven - Aula 02
Maven - Aula 02Maven - Aula 02
Maven - Aula 02
 
Vraptor no Heroku
Vraptor no HerokuVraptor no Heroku
Vraptor no Heroku
 
Maven - Aula 06
Maven  - Aula 06Maven  - Aula 06
Maven - Aula 06
 
Criando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraCriando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O Fedora
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Preparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularPreparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angular
 

Semelhante a X Bemobi Tech Talk - Maven

Aula maven
Aula   mavenAula   maven
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e Hudson
Rodrigo Branas
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
SOL7 - Tecnologia de Decisão
 
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
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
Rodrigo Branas
 
Introdução ao maven
Introdução ao mavenIntrodução ao maven
Introdução ao maven
Anderson Araújo
 
Maven
MavenMaven
Composer dependency manager
Composer   dependency managerComposer   dependency manager
Composer dependency manager
Vitor Mattos
 
Pyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosPyramid - O Framework Web para Todos
Pyramid - O Framework Web para Todos
Ruda Filgueiras
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
Vitor Mattos
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Eliel Simoncelo
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
lekitamura
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
Marcelo Santos
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
Manoel Afonso
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Bruno Souza
 
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
Wandesson Soares
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)
Marcus Carvalho
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
Paulino Michelazzo
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
Jaime Neto
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Amazon Web Services LATAM
 

Semelhante a X Bemobi Tech Talk - Maven (20)

Aula maven
Aula   mavenAula   maven
Aula maven
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e Hudson
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
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!
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
 
Introdução ao maven
Introdução ao mavenIntrodução ao maven
Introdução ao maven
 
Maven
MavenMaven
Maven
 
Composer dependency manager
Composer   dependency managerComposer   dependency manager
Composer dependency manager
 
Pyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosPyramid - O Framework Web para Todos
Pyramid - O Framework Web para Todos
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
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
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 

Mais de Diego Magalhães

Evento CODERS
Evento CODERSEvento CODERS
Evento CODERS
Diego Magalhães
 
VIII TechTalk - Spring 3
VIII TechTalk - Spring 3VIII TechTalk - Spring 3
VIII TechTalk - Spring 3
Diego Magalhães
 
II Bemobi Tech Talk - NoSQL
II Bemobi Tech Talk - NoSQLII Bemobi Tech Talk - NoSQL
II Bemobi Tech Talk - NoSQL
Diego Magalhães
 
Comprafacil - Mobile Case
Comprafacil - Mobile CaseComprafacil - Mobile Case
Comprafacil - Mobile Case
Diego Magalhães
 
Java Messaging Service
Java Messaging ServiceJava Messaging Service
Java Messaging Service
Diego Magalhães
 
Botnet: Uma visao geral
Botnet: Uma visao geralBotnet: Uma visao geral
Botnet: Uma visao geral
Diego Magalhães
 
Fowarder Receiver Pattern
Fowarder Receiver PatternFowarder Receiver Pattern
Fowarder Receiver Pattern
Diego Magalhães
 

Mais de Diego Magalhães (7)

Evento CODERS
Evento CODERSEvento CODERS
Evento CODERS
 
VIII TechTalk - Spring 3
VIII TechTalk - Spring 3VIII TechTalk - Spring 3
VIII TechTalk - Spring 3
 
II Bemobi Tech Talk - NoSQL
II Bemobi Tech Talk - NoSQLII Bemobi Tech Talk - NoSQL
II Bemobi Tech Talk - NoSQL
 
Comprafacil - Mobile Case
Comprafacil - Mobile CaseComprafacil - Mobile Case
Comprafacil - Mobile Case
 
Java Messaging Service
Java Messaging ServiceJava Messaging Service
Java Messaging Service
 
Botnet: Uma visao geral
Botnet: Uma visao geralBotnet: Uma visao geral
Botnet: Uma visao geral
 
Fowarder Receiver Pattern
Fowarder Receiver PatternFowarder Receiver Pattern
Fowarder Receiver Pattern
 

X Bemobi Tech Talk - Maven

  • 1. X Bemobi Tech Tal k Maven Di ego Magal hães 22/ 02/ 2013
  • 2. Definição  Mais do que uma simples ferramenta de build  Promove convention over configuration  Hierárquico (≠ ANT) Bemobi Tech Tal k Dat a: 09/11/2012
  • 3. POM e Artefatos  Planta do seu build, todas as configurações  Geração de um ou mais artefatos por build (Normalmente um)  Identificação via artifactId, groupId e versão  Versões “-SNAPSHOT”  Artefatos são guardados em repositórios locais/remotos Bemobi Tech Tal k Dat a: 09/11/2012
  • 4. POM e Artefatos  Herança através de um SUPER POM (Parent POM)  Definição de bibliotecas atrás de dependencyManagement  Definição de regras, reporters e formatadores  Perfis de execução Bemobi Tech Tal k Dat a: 09/11/2012
  • 5. Build dos seus projetos  Goal é uma única ação  Cada Phase é uma coleção de Goals  O ciclo de vida do maven é composto por uma sequência de Phases  Plugins disponibilizam seus próprios Goals, que por sua vez podem ser incluidos em Phases Bemobi Tech Tal k Dat a: 09/11/2012
  • 6. Archetypes  Templates de projetos  Use um ou construa a partir de mvn archetype:create-from-project  Acaba com a bagunça do ctrl+c e ctrl+v dos “projetos base” Bemobi Tech Tal k Dat a: 09/11/2012
  • 7. Dependências  São guardadas em repositórios (local – mvn install ou remoto – mvn deploy)  Referências a repositórios podem estar no POM ou no settings.xml  Como o maven resolve qual dependência usar? A mais próxima! Bemobi Tech Tal k Dat a: 09/11/2012 1 2 3 4
  • 8. Dependências  Use *Management (DependencyManagement, PluginManagement etc)  Herança de versões de bibliotecas e plugins Bemobi Tech Tal k Dat a: 09/11/2012 Parent Pom Pom dos projetos filhos
  • 9. Integração com SCM  mvn release:prepare • versões em todos os poms perdem o sufixo “-SNAPSHOT” • cria a tag no SCM da versão  mvn release:perform • Faz o deploy da tag no svn • mvn deploy • atualiza os POMs para a próxima versão de desenvolvimento (Snapshot) Bemobi Tech Tal k Dat a: 09/11/2012
  • 10. Integração com SCM  mvn release:prepare – versões em todos os poms perdem o sufixo “- SNAPSHOT”, cria a tag no SCM da versão  mvn release:perform– Faz o deploy da tag no svn, mvn deploy e atualiza os POMs para a próxima versão de desenvolvimento (Snapshot) Bemobi Tech Tal k Dat a: 09/11/2012
  • 11. Rodando sua aplicação  Rodar qualquer main class de java ou ferramenta externa • mvn exec:java –Dexec.mainClass=“com.bemobi.teste”  Cria um ambiente de classpath a partir das dependencias do projeto  Usamos para testes (jetty:run) Bemobi Tech Tal k Dat a: 09/11/2012
  • 12. Integrando com legado  Suporta integração com ANT  Mvn ant:ant • build.xml • maven-build.xml • maven-build.properties  Ideal para fazer coisas arbitrária no ciclo do maven (copiar arquivos, gerar output no console etc) Bemobi Tech Tal k Dat a: 09/11/2012
  • 13. Sites e Relatórios  Site com changelogs, notas, javadoc e outros relatórios  Não existe mais seção reporting (maven 2), agora plugins geram relatórios • Javadoc • Java XRef • Tag List • Project Info • Check Style • Surefire • PMD • FindBugs • Sonar • Cobertura • Versions Bemobi Tech Tal k Dat a: 09/11/2012
  • 14. Dúvidas? Bemobi Tech Tal k Dat a: 09/11/2012
  • 15. Fim Bemobi Tech Tal k Dat a: 09/11/2012