1. O documento descreve uma aula sobre o Project Object Model (POM) em Maven. 2. O POM define a identidade, estrutura, configuração de build, dependências e relacionamentos de um projeto Maven. 3. O POM é composto por várias seções como informações gerais, configurações de build, ambientes de build e relacionamentos.
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
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
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
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
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