SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Maven - Curso Básico
Aula 02 - POM - Parte 1
Agenda
● Aula 1: Introdução;
● Aula 2: O POM - Parte 1;
● Aula 3: O POM - Parte 2;
● Aula 4: O POM - Parte 3;
● Aula 5: Ciclos de Vida;
● Aula 6: Build Profiles;
● Aula 7: Plugins, CLI e Conclusão;
2Édipo Daniel Aragão - Maven Básico
Project Object Model (POM)
O POM é onde um projeto:
1. Tem sua identidade definida;
2. Tem sua estrutura declarada;
3. Tem o build é configurado;
4. É relacionado a outros;
5. Define suas dependências.
O POM define um projeto Maven! É o mapa do projeto!
O POM é declarativo! Descritivo!
O POM não é específico para Java!
3Édipo Daniel Aragão - Maven Básico
Project Object Model (POM)
“O Project Object Model ou POM (pom.xml) é um arquivo de configuração de um
projeto Maven, sendo único por projeto e fundamental para a utilização da
ferramenta. Contém a maior parte (ou todas) das informações para construção do
projeto. Ele é o local ideal para procurar informações sobre o projeto, e seu
entendimento é imprescindível para trabalhar com Maven.”
4Édipo Daniel Aragão - Maven Básico
Composição do POM
5Édipo Daniel Aragão - Maven Básico
Composição do POM
Relacionamentos do POM (POM Relationships)
Contém outros projetos os quais seu projeto depende, herança de configurações
de um POM pai, as próprias coordenadas, e sub-módulos.
6Édipo Daniel Aragão - Maven Básico
Composição do POM
7Édipo Daniel Aragão - Maven Básico
Composição do POM
8Édipo Daniel Aragão - Maven Básico
Composição do POM
Informações Gerais do Projeto (General Project Information)
Inclui o nome do projeto, url, organização, lista de desenvolvedores e
contribuidores, licença, etc.
9Édipo Daniel Aragão - Maven Básico
Composição do POM
10Édipo Daniel Aragão - Maven Básico
Composição do POM
11Édipo Daniel Aragão - Maven Básico
Composição do POM
12Édipo Daniel Aragão - Maven Básico
Composição do POM
Configurações de Build (Build Settings)
Permite customizar o comportamento padrão do build do Maven. Podemos alterar
a localização do código fonte, dos testes, adicionar plugins, adicionar plugin goals
ao ciclo de vida, customizar a geração do site.
13Édipo Daniel Aragão - Maven Básico
Composição do POM
14Édipo Daniel Aragão - Maven Básico
Composição do POM
15Édipo Daniel Aragão - Maven Básico
Composição do POM
Ambiente de Build (Build Environment)
Contém os profiles que podem ser ativados para uso em diferentes ambientes.
Podemos customizar alguns settings de build e sobrescrever itens do settings.xml
do ~/m2.
16Édipo Daniel Aragão - Maven Básico
Eu inventei tudo isso?
1. Não!
2. Está no livro de referência, e;
3. https://maven.apache.org/pom.html
a. Vale a pena visitar!
17Édipo Daniel Aragão - Maven Básico
Super POM
1. Todos projetos Maven estendem o Super POM;
2. Contém valores padrão compartilhados entre todos
projetos.
3. Faz parte da instalação do Maven.
4. Contido num jar dentro do diretório do Maven.
5. Chama-se: pom-4.0.0.xml no pacote
org.apache.maven.model.
6. Disponível em:
http://maven.apache.org/ref/3.0.4/maven-model-builder/su
per-pom.html
18Édipo Daniel Aragão - Maven Básico
Definições do Super Pom
O Super POM tem algumas definições muito interessantes:
1. Define o Repositório Central do Maven;
a. Para dependências;
b. Para plugins;
c. Define que não aceita Snapshots!
2. A definição dos diretórios padrão;
3. A versão padrão dos plugins core do Maven;
19Édipo Daniel Aragão - Maven Básico
O POM mais Simples Possível!
20Édipo Daniel Aragão - Maven Básico
POM Efetivo
21
1. Retorna o merge do pom com o super pom, e eventuais poms pai.
mvn help:effective-pom
Édipo Daniel Aragão - Maven Básico
Será que isso funciona?!
22
1. Vamos checar se o effective pom funciona!
2. Acesse o diretório do pom.xml mínimo do exercício 1 e execute o comando:
mvn help:effective-pom
Édipo Daniel Aragão - Maven Básico
POMs Reais
23
1. Então dos itens que vimos anteriormente (a composição do POM) alguns deles
podem fazer ou não sentido para seu projeto.
Édipo Daniel Aragão - Maven Básico
POMs Reais
24
1. Então dos itens que vimos anteriormente (a composição do POM) alguns deles
podem fazer ou não sentido para seu projeto.
Édipo Daniel Aragão - Maven Básico
Continua...
25Édipo Daniel Aragão - Maven Básico

Mais conteúdo relacionado

Mais procurados

Pyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosPyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosRuda Filgueiras
 
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
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: IntroduçãoJugVale
 
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
 
Simtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaSimtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaPwC
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 
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 JenkinsStefan Teixeira
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvPedro Fernandes Vieira
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkFlávio Lisboa
 
Spring: uma introdução prática
Spring: uma introdução práticaSpring: uma introdução prática
Spring: uma introdução práticaJosé Barros
 

Mais procurados (20)

Maven na prática
Maven na práticaMaven na prática
Maven na prática
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
 
Aula maven
Aula   mavenAula   maven
Aula maven
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Pyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosPyramid - O Framework Web para Todos
Pyramid - O Framework Web para Todos
 
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
MavenMaven
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
 
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?
 
Plugin Maven no Eclipse
Plugin Maven no EclipsePlugin Maven no Eclipse
Plugin Maven no Eclipse
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
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
 
Maven 2
Maven 2Maven 2
Maven 2
 
Simtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaSimtecce 2011 Integracao Continua
Simtecce 2011 Integracao Continua
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
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
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenv
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
Spring: uma introdução prática
Spring: uma introdução práticaSpring: uma introdução prática
Spring: uma introdução prática
 

Semelhante a Maven - Aula 02

Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com MavenEdgar Dantas
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do MavenAllan Alves
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootAumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootFernando Boaglio
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e HudsonRodrigo Branas
 
Web Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelWeb Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelMozDevz
 
Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!Alefe Variani
 
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Ismael Stahelin
 
PHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerPHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerLeonardo Tumadjian
 
Tutorial Setup projeto JADE e ROS
Tutorial Setup projeto JADE e ROSTutorial Setup projeto JADE e ROS
Tutorial Setup projeto JADE e ROSPedro Nakibar
 
Quick intro to Apache Maven
Quick intro to Apache MavenQuick intro to Apache Maven
Quick intro to Apache MavenInformantTalks
 
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
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 

Semelhante a Maven - Aula 02 (20)

Apache maven
Apache mavenApache maven
Apache maven
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com Maven
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do Maven
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootAumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring Boot
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e Hudson
 
Web Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelWeb Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to Laravel
 
Mastering Laravel
Mastering LaravelMastering Laravel
Mastering Laravel
 
Django Básico
Django BásicoDjango Básico
Django Básico
 
Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!
 
Maverick v1.0
Maverick v1.0Maverick v1.0
Maverick v1.0
 
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
 
PHP de alta performance com RoadRunner
PHP de alta performance com RoadRunnerPHP de alta performance com RoadRunner
PHP de alta performance com RoadRunner
 
Tutorial Setup projeto JADE e ROS
Tutorial Setup projeto JADE e ROSTutorial Setup projeto JADE e ROS
Tutorial Setup projeto JADE e ROS
 
Quick intro to Apache Maven
Quick intro to Apache MavenQuick intro to Apache Maven
Quick intro to 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
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
01 java fundamentos
01 java fundamentos01 java fundamentos
01 java fundamentos
 

Maven - Aula 02

  • 1. Maven - Curso Básico Aula 02 - POM - Parte 1
  • 2. Agenda ● Aula 1: Introdução; ● Aula 2: O POM - Parte 1; ● Aula 3: O POM - Parte 2; ● Aula 4: O POM - Parte 3; ● Aula 5: Ciclos de Vida; ● Aula 6: Build Profiles; ● Aula 7: Plugins, CLI e Conclusão; 2Édipo Daniel Aragão - Maven Básico
  • 3. Project Object Model (POM) O POM é onde um projeto: 1. Tem sua identidade definida; 2. Tem sua estrutura declarada; 3. Tem o build é configurado; 4. É relacionado a outros; 5. Define suas dependências. O POM define um projeto Maven! É o mapa do projeto! O POM é declarativo! Descritivo! O POM não é específico para Java! 3Édipo Daniel Aragão - Maven Básico
  • 4. Project Object Model (POM) “O Project Object Model ou POM (pom.xml) é um arquivo de configuração de um projeto Maven, sendo único por projeto e fundamental para a utilização da ferramenta. Contém a maior parte (ou todas) das informações para construção do projeto. Ele é o local ideal para procurar informações sobre o projeto, e seu entendimento é imprescindível para trabalhar com Maven.” 4Édipo Daniel Aragão - Maven Básico
  • 5. Composição do POM 5Édipo Daniel Aragão - Maven Básico
  • 6. Composição do POM Relacionamentos do POM (POM Relationships) Contém outros projetos os quais seu projeto depende, herança de configurações de um POM pai, as próprias coordenadas, e sub-módulos. 6Édipo Daniel Aragão - Maven Básico
  • 7. Composição do POM 7Édipo Daniel Aragão - Maven Básico
  • 8. Composição do POM 8Édipo Daniel Aragão - Maven Básico
  • 9. Composição do POM Informações Gerais do Projeto (General Project Information) Inclui o nome do projeto, url, organização, lista de desenvolvedores e contribuidores, licença, etc. 9Édipo Daniel Aragão - Maven Básico
  • 10. Composição do POM 10Édipo Daniel Aragão - Maven Básico
  • 11. Composição do POM 11Édipo Daniel Aragão - Maven Básico
  • 12. Composição do POM 12Édipo Daniel Aragão - Maven Básico
  • 13. Composição do POM Configurações de Build (Build Settings) Permite customizar o comportamento padrão do build do Maven. Podemos alterar a localização do código fonte, dos testes, adicionar plugins, adicionar plugin goals ao ciclo de vida, customizar a geração do site. 13Édipo Daniel Aragão - Maven Básico
  • 14. Composição do POM 14Édipo Daniel Aragão - Maven Básico
  • 15. Composição do POM 15Édipo Daniel Aragão - Maven Básico
  • 16. Composição do POM Ambiente de Build (Build Environment) Contém os profiles que podem ser ativados para uso em diferentes ambientes. Podemos customizar alguns settings de build e sobrescrever itens do settings.xml do ~/m2. 16Édipo Daniel Aragão - Maven Básico
  • 17. Eu inventei tudo isso? 1. Não! 2. Está no livro de referência, e; 3. https://maven.apache.org/pom.html a. Vale a pena visitar! 17Édipo Daniel Aragão - Maven Básico
  • 18. Super POM 1. Todos projetos Maven estendem o Super POM; 2. Contém valores padrão compartilhados entre todos projetos. 3. Faz parte da instalação do Maven. 4. Contido num jar dentro do diretório do Maven. 5. Chama-se: pom-4.0.0.xml no pacote org.apache.maven.model. 6. Disponível em: http://maven.apache.org/ref/3.0.4/maven-model-builder/su per-pom.html 18Édipo Daniel Aragão - Maven Básico
  • 19. Definições do Super Pom O Super POM tem algumas definições muito interessantes: 1. Define o Repositório Central do Maven; a. Para dependências; b. Para plugins; c. Define que não aceita Snapshots! 2. A definição dos diretórios padrão; 3. A versão padrão dos plugins core do Maven; 19Édipo Daniel Aragão - Maven Básico
  • 20. O POM mais Simples Possível! 20Édipo Daniel Aragão - Maven Básico
  • 21. POM Efetivo 21 1. Retorna o merge do pom com o super pom, e eventuais poms pai. mvn help:effective-pom Édipo Daniel Aragão - Maven Básico
  • 22. Será que isso funciona?! 22 1. Vamos checar se o effective pom funciona! 2. Acesse o diretório do pom.xml mínimo do exercício 1 e execute o comando: mvn help:effective-pom Édipo Daniel Aragão - Maven Básico
  • 23. POMs Reais 23 1. Então dos itens que vimos anteriormente (a composição do POM) alguns deles podem fazer ou não sentido para seu projeto. Édipo Daniel Aragão - Maven Básico
  • 24. POMs Reais 24 1. Então dos itens que vimos anteriormente (a composição do POM) alguns deles podem fazer ou não sentido para seu projeto. Édipo Daniel Aragão - Maven Básico