Maven - Curso Básico
Aula 05 - Ciclos de Vida
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
Frase Motivacional
3
“Se fiz descobertas valiosas, foi mais por ter paciência do que qualquer outro
talento.” - Isaac Newton
Édipo Daniel Aragão - Maven Básico
POM
4
1. Maven modela projetos conforme descrito no POM.
2. O POM captura a identidade do projeto.
a. O que ele contém;
b. Qual tipo de "empacotamento";
c. Herança;
d. Agregação;
e. Dependências.
3. Podemos pensar no POM como um agrupamento de substantivos.
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida (Life Cycle)?
O que é um ciclo de vida?
5Édipo Daniel Aragão - Maven Básico
Ciclos de Vida (Life Cycle)
6
1. No Maven os verbos são:
goals de plugins, amarrados a fases de um ciclo de vida bem definido.
2. Ciclos de vida são um conjunto fases (phases) bem definidas, executadas
sequencialmente;
3. O Maven é baseado neste conceito de ciclo de vida, o que implica num
processo de build claramente definido.
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida (Life Cycle)
7
1. Seguem alguns exemplos de fases e seus ciclos de vida:
a. prepare-resources ciclo de vida default
b. install ciclo de vida default
c. clean ciclo de vida clean
d. site ciclo de vida site
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida (Life Cycle)
8
“Uma vantagem de ciclos de vida bem definidos, é que você precisa aprender
somente um pequeno conjunto de comandos para executá-los e atingir seus
objetivos.”
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida (Life Cycle)
9
1. Quando você executa no terminal:
a. mvn install
2. Está pedindo ao Maven para:
a. Percorra todas as fases (do ciclo de vida padrão) até install e;
b. Execute todas eventuais goals que essa fase possui.
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida (Life Cycle)
10
1. Existem 3 ciclos de vida de build padrão:
a. clean;
b. default (ou build);
c. site;
http://maven.apache.org/components/ref/3.3.3/maven-core/lifecycles.html#cle
an_Lifecycle
2. É possível concatenar ciclos de vida num único comando:
a. mvn clean install site
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Clean
11
1. É o ciclo de vida mais simples;
2. Possui três fases:
a. pre-clean;
b. clean;
c. post-clean.
3. Exemplo Sequência:
a. pre-clean → clean → post-clean;
Édipo Daniel Aragão - Maven Básico
Como Checar isso?
12
1. Definição oficial do site da Apache:
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Clean
13
1. A fase mais interessante deste ciclo de vida é a fase clean.
a. Somente a fase clean, apresenta uma goal associada ao
maven-clean-plugin por padrão:
b. A goal é:
i. clean;
Édipo Daniel Aragão - Maven Básico
Como Checar isso?
14
1. Aqui temos a definição deste ciclo de vida (do maven-core-x.x.x.jar,
META-INF/plexus/components.xml):
2. A definição de uma goal de um plugin não é feito dessa forma num pom.xml.
Este formato é interno ao core do Maven.
Édipo Daniel Aragão - Maven Básico
Porque fases vazias?
15
1. Na fase pre-clean e post-clean nada acontece!
2. As fases vazias podem ser úteis para particularidades de um projeto.
3. Por exemplo, pre-clean:
a. Poderia ser utilizada para fazer backup de arquivos.
Édipo Daniel Aragão - Maven Básico
Exemplo - Fases Clean
16
1. Execute o exemplo “Exemplo - Fases Clean” disponível no moodle e discuta o
que acontece. Teste os comandos:
a. mvn pre-clean;
b. mvn clean;
c. mvn post-clean;
d. Repita os comandos com o parâmetro -X (debug).
Édipo Daniel Aragão - Maven Básico
Ciclo de Vida Default (Build)
17
1. É o ciclo de vida mais utilizado.
2. Possui 23 fases:
a. validate;
b. initialize;
c. generate-sources;
d. process-sources;
e. generate-resources;
f. . . .
3. Exemplo Sequência:
a. validate → initialize → generate-resources → ... ;
Édipo Daniel Aragão - Maven Básico
Ciclo de Vida Default (Build)
18
1. As fases mais conhecidas são:
a. install, compile, package, test;
2. Elas não tem goals de plugins associadas;
a. Goals são definidas pelo tipo de packaging.
3. Exemplos de comandos:
i. mvn compile
ii. mvn package
iii. mvn install
iv. mvn deploy
Édipo Daniel Aragão - Maven Básico
1. Definição oficial do site da Apache:
Ciclo de Vida Default (Build)
19Édipo Daniel Aragão - Maven Básico
1. Definição oficial do site da Apache:
Ciclo de Vida Default (Build)
20Édipo Daniel Aragão - Maven Básico
1. Definição oficial do site da Apache:
Ciclo de Vida Default (Build)
21Édipo Daniel Aragão - Maven Básico
1. Definição oficial do site da Apache:
Ciclo de Vida Default (Build)
22Édipo Daniel Aragão - Maven Básico
Ciclo de Vida Default (Build)
23
1. Aqui temos a definição deste ciclo de
vida (do maven-core-x.x.x.jar,
META-INF/plexus/components.xml):
Édipo Daniel Aragão - Maven Básico
1. O packaging (empacotamento) de projeto afeta o ciclo de vida default;
2. Existem um conjunto de goals diferentes para cada packaging;
3. Lembrando os tipos de packaging padrão:
a. pom;
b. jar;
c. maven-plugin;
d. ejb;
e. ...
Ciclos de Vida Default Específicos
por "Package"
24Édipo Daniel Aragão - Maven Básico
1. É possível adicionar outros packaging associados a devidos plugins;
2. Os plugins e goals utilizados são definidos em:
a. maven-core-x.x.x.jar, META-INF/plexus/default-bindings.xml.
i. Disponível no moodle.
Ciclos de Vida Default Específicos
por "Package"
25Édipo Daniel Aragão - Maven Básico
1. É possível adicionar outros packaging associados a devidos plugins;
2. Os plugins e goals utilizados são definidos em:
a. maven-core-x.x.x.jar, META-INF/plexus/default-bindings.xml.
i. Disponível no moodle.
Ciclos de Vida Default Específicos
por "Package"
26Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - JAR
27
1. Definição oficial para o ciclo de vida jar:
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - JAR
28Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - POM
29
1. Definição do ciclo de vida pom:
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - POM
30
1. Perceba que a tabela anterior não se aplica;
2. Preciso verificar...
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - WAR
31
1. Definição do ciclo de vida war:
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - WAR
32Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - EJB
33
1. Definição do ciclo de vida ejb:
Édipo Daniel Aragão - Maven Básico
Ciclos de Vida Default - EAR
34
1. Definição do ciclo de vida ejb:
Édipo Daniel Aragão - Maven Básico
Reuso de Goals
35
1. Muitas das goals que vimos são compartilhadas entre diferentes ciclos de vida
e phases;
2. Se compararmos o build do "war" e do "jar" somente a goal de packaging
muda.
Édipo Daniel Aragão - Maven Básico
Goal - resources
36
1. A fase de process-resources processa recursos e os copia para o diretório de
saída, através da goal resources.
a. ${basedir}/src/main/resources → ${basedir}/target/classes
2. Permite fazer um filtro nos resources e substituir tokens dentro de um arquivo!
3. Da mesma forma que referenciamos properties no POM com a notação ${...}
podemos fazer nos resources.
Édipo Daniel Aragão - Maven Básico
Exemplo - Filtros
37
1. Execute o exemplo “Exemplo - Filtros” disponível no moodle e discuta o que
acontece. Teste o comando:
a. mvn package;
2. O que acontece com os “test.xml”?
3. O que acontece com “services.xml”?
Édipo Daniel Aragão - Maven Básico
Goal - compile
38
1. A maioria dos ciclos usa a goal compile na fase de compilação;
2. Essa fase chama: compiler:compile;
3. Ela é configurada para compilar todo o código fonte e copiar os bytecode para
o diretório de saída:
a. Por padrão target/classes;
4. O Compiler plugin chama javac sob o diretório de source;
5. Por padrão assume que seus código é java 1.3 e a JVM alvo de execução é
java 1.1;
6. Se quiser mudar isso, é preciso configurar o pom.
Édipo Daniel Aragão - Maven Básico
Goal - compile
39Édipo Daniel Aragão - Maven Básico
Goal - compile
40
1. Perceba que acima configuramos o plugin e não a goal;
2. O plugin compiler é também utilizado para compilar os testes, mas a goal no
caso é compiler:testcompile;
3. Quando configuramos no plugin essa configuração se aplica para todas as
goals;
4. Lembre-se que para configurar diretórios não é por esse plugin, mas
sobrescrevendo a configuração do Super POM:
Édipo Daniel Aragão - Maven Básico
Goal - test-compile
41
1. A fase test-compile é praticamente igual a compile.
2. compiler:testCompile é a goal testCompile do plugin compiler.
3. A diferença? Ela compila os testes!
4. Lembrando que podemos também mudar o diretório dos testes:
Édipo Daniel Aragão - Maven Básico
Goal - test
42
1. Essa goal é direcionada para o plugin surefire, que é o plugin de testes de
unidade padrão do Maven;
2. O plugin basicamente busca tudo com *Test e roda como um JUnit;
3. Também dá suporte a TestNG!
4. Ele roda os testes e gera um report em target/surefire-reports;
a. Cria um xml e um arquivo de texto.
b. Você pode analisar estes arquivos e verificar onde houveram falhas.
5. Ao executar o ciclo de vida site, esse diretório acrescenta dados ao site do
projeto.
Édipo Daniel Aragão - Maven Básico
Goal - test
43
1. Qual o significado de surefire? Infalível!
http://maven.apache.org/surefire/maven-surefire-plugin/
2. O que é o testNG?
a. Ele é um framework de teste também, baseado no JUnit e que tem
algumas features adicionais para facilitar o processo de teste;
http://testng.org/doc/index.html
3. Aqui temos um ponto muito interessante. O surefire cuida de testes de
unidade. E os de integração?
a. No caso é o plugin failsafe, que não vem por padrão configurado. É
preciso adicioná-lo!
b. Ele se amarra automaticamente as fases de test de integração.
Édipo Daniel Aragão - Maven Básico
Goal - test
44
1. No projeto, meu coleguinha commitou um teste falhando!
2. Quero que continue rodando os demais, mas tolerar falhas no build…
3. Como faço?
4. Isso é bastante comum, mas você pode contornar dessa forma:
Édipo Daniel Aragão - Maven Básico
Goal - install
45
1. A fase install chama a goal install do plugin install!
2. Esta goal instala o artefato no repositório local (.m2).
3. Se tiver um projeto com groupId = br.com.edipoaragao
4. E um artefactId = projeto1
5. Ele copiará o artefato para:
a. ~/m2/repository/br/com/edipoaragao/projeto1/projeto1.jar
Édipo Daniel Aragão - Maven Básico
Goal - deploy
46
1. A fase deploy chama a goal deploy do plugin deploy!
2. Mas não um deploy de servidor, "o deploy da aplicação".
3. Instala num repositório remoto o artefato (Nexus ou um Artifactory).
4. Essa configuração pode ser simples ou complexa.
Édipo Daniel Aragão - Maven Básico
Ciclo de Vida Site
47
1. É o ciclo é exclusivo para gerar relatórios e documentação dos projetos;
2. Possui quatro fases:
a. pre-site;
b. site;
c. pos-site;
d. site-deploy.
3. Exemplo Sequência:
a. pre-site → site → pos-site;
Édipo Daniel Aragão - Maven Básico
Ciclo de Vida Site
48
1. As fases mais conhecida: site;
2. 5. A configuração deste ciclo é interessante;
a. Usa-se o mesmo plugin maven-site-plugin para duas fases:
i. site, com goal:
1. site;
ii. site-deploy com a goal:
1. deploy;
Édipo Daniel Aragão - Maven Básico
Ciclo de Vida Site
49
1. As fases mais conhecida: site;
2. 5. A configuração deste ciclo é interessante;
a. Usa-se o mesmo plugin maven-site-plugin para duas fases:
i. site, com goal:
1. site;
ii. site-deploy com a goal:
1. deploy;
Édipo Daniel Aragão - Maven Básico
Ciclo de Vida Site
50
1. Definição oficial do site da Apache:
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Édipo Daniel Aragão - Maven Básico
Referencias
51
1. https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
2. http://maven.apache.org/components/ref/3.3.3/maven-core/lifecycles.html#site
_Lifecycle
3. https://maven.apache.org/plugins/maven-site-plugin/
Édipo Daniel Aragão - Maven Básico

Maven - Aula 05

  • 1.
    Maven - CursoBásico Aula 05 - Ciclos de Vida
  • 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.
    Frase Motivacional 3 “Se fizdescobertas valiosas, foi mais por ter paciência do que qualquer outro talento.” - Isaac Newton Édipo Daniel Aragão - Maven Básico
  • 4.
    POM 4 1. Maven modelaprojetos conforme descrito no POM. 2. O POM captura a identidade do projeto. a. O que ele contém; b. Qual tipo de "empacotamento"; c. Herança; d. Agregação; e. Dependências. 3. Podemos pensar no POM como um agrupamento de substantivos. Édipo Daniel Aragão - Maven Básico
  • 5.
    Ciclos de Vida(Life Cycle)? O que é um ciclo de vida? 5Édipo Daniel Aragão - Maven Básico
  • 6.
    Ciclos de Vida(Life Cycle) 6 1. No Maven os verbos são: goals de plugins, amarrados a fases de um ciclo de vida bem definido. 2. Ciclos de vida são um conjunto fases (phases) bem definidas, executadas sequencialmente; 3. O Maven é baseado neste conceito de ciclo de vida, o que implica num processo de build claramente definido. Édipo Daniel Aragão - Maven Básico
  • 7.
    Ciclos de Vida(Life Cycle) 7 1. Seguem alguns exemplos de fases e seus ciclos de vida: a. prepare-resources ciclo de vida default b. install ciclo de vida default c. clean ciclo de vida clean d. site ciclo de vida site Édipo Daniel Aragão - Maven Básico
  • 8.
    Ciclos de Vida(Life Cycle) 8 “Uma vantagem de ciclos de vida bem definidos, é que você precisa aprender somente um pequeno conjunto de comandos para executá-los e atingir seus objetivos.” Édipo Daniel Aragão - Maven Básico
  • 9.
    Ciclos de Vida(Life Cycle) 9 1. Quando você executa no terminal: a. mvn install 2. Está pedindo ao Maven para: a. Percorra todas as fases (do ciclo de vida padrão) até install e; b. Execute todas eventuais goals que essa fase possui. Édipo Daniel Aragão - Maven Básico
  • 10.
    Ciclos de Vida(Life Cycle) 10 1. Existem 3 ciclos de vida de build padrão: a. clean; b. default (ou build); c. site; http://maven.apache.org/components/ref/3.3.3/maven-core/lifecycles.html#cle an_Lifecycle 2. É possível concatenar ciclos de vida num único comando: a. mvn clean install site Édipo Daniel Aragão - Maven Básico
  • 11.
    Ciclos de VidaClean 11 1. É o ciclo de vida mais simples; 2. Possui três fases: a. pre-clean; b. clean; c. post-clean. 3. Exemplo Sequência: a. pre-clean → clean → post-clean; Édipo Daniel Aragão - Maven Básico
  • 12.
    Como Checar isso? 12 1.Definição oficial do site da Apache: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html Édipo Daniel Aragão - Maven Básico
  • 13.
    Ciclos de VidaClean 13 1. A fase mais interessante deste ciclo de vida é a fase clean. a. Somente a fase clean, apresenta uma goal associada ao maven-clean-plugin por padrão: b. A goal é: i. clean; Édipo Daniel Aragão - Maven Básico
  • 14.
    Como Checar isso? 14 1.Aqui temos a definição deste ciclo de vida (do maven-core-x.x.x.jar, META-INF/plexus/components.xml): 2. A definição de uma goal de um plugin não é feito dessa forma num pom.xml. Este formato é interno ao core do Maven. Édipo Daniel Aragão - Maven Básico
  • 15.
    Porque fases vazias? 15 1.Na fase pre-clean e post-clean nada acontece! 2. As fases vazias podem ser úteis para particularidades de um projeto. 3. Por exemplo, pre-clean: a. Poderia ser utilizada para fazer backup de arquivos. Édipo Daniel Aragão - Maven Básico
  • 16.
    Exemplo - FasesClean 16 1. Execute o exemplo “Exemplo - Fases Clean” disponível no moodle e discuta o que acontece. Teste os comandos: a. mvn pre-clean; b. mvn clean; c. mvn post-clean; d. Repita os comandos com o parâmetro -X (debug). Édipo Daniel Aragão - Maven Básico
  • 17.
    Ciclo de VidaDefault (Build) 17 1. É o ciclo de vida mais utilizado. 2. Possui 23 fases: a. validate; b. initialize; c. generate-sources; d. process-sources; e. generate-resources; f. . . . 3. Exemplo Sequência: a. validate → initialize → generate-resources → ... ; Édipo Daniel Aragão - Maven Básico
  • 18.
    Ciclo de VidaDefault (Build) 18 1. As fases mais conhecidas são: a. install, compile, package, test; 2. Elas não tem goals de plugins associadas; a. Goals são definidas pelo tipo de packaging. 3. Exemplos de comandos: i. mvn compile ii. mvn package iii. mvn install iv. mvn deploy Édipo Daniel Aragão - Maven Básico
  • 19.
    1. Definição oficialdo site da Apache: Ciclo de Vida Default (Build) 19Édipo Daniel Aragão - Maven Básico
  • 20.
    1. Definição oficialdo site da Apache: Ciclo de Vida Default (Build) 20Édipo Daniel Aragão - Maven Básico
  • 21.
    1. Definição oficialdo site da Apache: Ciclo de Vida Default (Build) 21Édipo Daniel Aragão - Maven Básico
  • 22.
    1. Definição oficialdo site da Apache: Ciclo de Vida Default (Build) 22Édipo Daniel Aragão - Maven Básico
  • 23.
    Ciclo de VidaDefault (Build) 23 1. Aqui temos a definição deste ciclo de vida (do maven-core-x.x.x.jar, META-INF/plexus/components.xml): Édipo Daniel Aragão - Maven Básico
  • 24.
    1. O packaging(empacotamento) de projeto afeta o ciclo de vida default; 2. Existem um conjunto de goals diferentes para cada packaging; 3. Lembrando os tipos de packaging padrão: a. pom; b. jar; c. maven-plugin; d. ejb; e. ... Ciclos de Vida Default Específicos por "Package" 24Édipo Daniel Aragão - Maven Básico
  • 25.
    1. É possíveladicionar outros packaging associados a devidos plugins; 2. Os plugins e goals utilizados são definidos em: a. maven-core-x.x.x.jar, META-INF/plexus/default-bindings.xml. i. Disponível no moodle. Ciclos de Vida Default Específicos por "Package" 25Édipo Daniel Aragão - Maven Básico
  • 26.
    1. É possíveladicionar outros packaging associados a devidos plugins; 2. Os plugins e goals utilizados são definidos em: a. maven-core-x.x.x.jar, META-INF/plexus/default-bindings.xml. i. Disponível no moodle. Ciclos de Vida Default Específicos por "Package" 26Édipo Daniel Aragão - Maven Básico
  • 27.
    Ciclos de VidaDefault - JAR 27 1. Definição oficial para o ciclo de vida jar: Édipo Daniel Aragão - Maven Básico
  • 28.
    Ciclos de VidaDefault - JAR 28Édipo Daniel Aragão - Maven Básico
  • 29.
    Ciclos de VidaDefault - POM 29 1. Definição do ciclo de vida pom: Édipo Daniel Aragão - Maven Básico
  • 30.
    Ciclos de VidaDefault - POM 30 1. Perceba que a tabela anterior não se aplica; 2. Preciso verificar... Édipo Daniel Aragão - Maven Básico
  • 31.
    Ciclos de VidaDefault - WAR 31 1. Definição do ciclo de vida war: Édipo Daniel Aragão - Maven Básico
  • 32.
    Ciclos de VidaDefault - WAR 32Édipo Daniel Aragão - Maven Básico
  • 33.
    Ciclos de VidaDefault - EJB 33 1. Definição do ciclo de vida ejb: Édipo Daniel Aragão - Maven Básico
  • 34.
    Ciclos de VidaDefault - EAR 34 1. Definição do ciclo de vida ejb: Édipo Daniel Aragão - Maven Básico
  • 35.
    Reuso de Goals 35 1.Muitas das goals que vimos são compartilhadas entre diferentes ciclos de vida e phases; 2. Se compararmos o build do "war" e do "jar" somente a goal de packaging muda. Édipo Daniel Aragão - Maven Básico
  • 36.
    Goal - resources 36 1.A fase de process-resources processa recursos e os copia para o diretório de saída, através da goal resources. a. ${basedir}/src/main/resources → ${basedir}/target/classes 2. Permite fazer um filtro nos resources e substituir tokens dentro de um arquivo! 3. Da mesma forma que referenciamos properties no POM com a notação ${...} podemos fazer nos resources. Édipo Daniel Aragão - Maven Básico
  • 37.
    Exemplo - Filtros 37 1.Execute o exemplo “Exemplo - Filtros” disponível no moodle e discuta o que acontece. Teste o comando: a. mvn package; 2. O que acontece com os “test.xml”? 3. O que acontece com “services.xml”? Édipo Daniel Aragão - Maven Básico
  • 38.
    Goal - compile 38 1.A maioria dos ciclos usa a goal compile na fase de compilação; 2. Essa fase chama: compiler:compile; 3. Ela é configurada para compilar todo o código fonte e copiar os bytecode para o diretório de saída: a. Por padrão target/classes; 4. O Compiler plugin chama javac sob o diretório de source; 5. Por padrão assume que seus código é java 1.3 e a JVM alvo de execução é java 1.1; 6. Se quiser mudar isso, é preciso configurar o pom. Édipo Daniel Aragão - Maven Básico
  • 39.
    Goal - compile 39ÉdipoDaniel Aragão - Maven Básico
  • 40.
    Goal - compile 40 1.Perceba que acima configuramos o plugin e não a goal; 2. O plugin compiler é também utilizado para compilar os testes, mas a goal no caso é compiler:testcompile; 3. Quando configuramos no plugin essa configuração se aplica para todas as goals; 4. Lembre-se que para configurar diretórios não é por esse plugin, mas sobrescrevendo a configuração do Super POM: Édipo Daniel Aragão - Maven Básico
  • 41.
    Goal - test-compile 41 1.A fase test-compile é praticamente igual a compile. 2. compiler:testCompile é a goal testCompile do plugin compiler. 3. A diferença? Ela compila os testes! 4. Lembrando que podemos também mudar o diretório dos testes: Édipo Daniel Aragão - Maven Básico
  • 42.
    Goal - test 42 1.Essa goal é direcionada para o plugin surefire, que é o plugin de testes de unidade padrão do Maven; 2. O plugin basicamente busca tudo com *Test e roda como um JUnit; 3. Também dá suporte a TestNG! 4. Ele roda os testes e gera um report em target/surefire-reports; a. Cria um xml e um arquivo de texto. b. Você pode analisar estes arquivos e verificar onde houveram falhas. 5. Ao executar o ciclo de vida site, esse diretório acrescenta dados ao site do projeto. Édipo Daniel Aragão - Maven Básico
  • 43.
    Goal - test 43 1.Qual o significado de surefire? Infalível! http://maven.apache.org/surefire/maven-surefire-plugin/ 2. O que é o testNG? a. Ele é um framework de teste também, baseado no JUnit e que tem algumas features adicionais para facilitar o processo de teste; http://testng.org/doc/index.html 3. Aqui temos um ponto muito interessante. O surefire cuida de testes de unidade. E os de integração? a. No caso é o plugin failsafe, que não vem por padrão configurado. É preciso adicioná-lo! b. Ele se amarra automaticamente as fases de test de integração. Édipo Daniel Aragão - Maven Básico
  • 44.
    Goal - test 44 1.No projeto, meu coleguinha commitou um teste falhando! 2. Quero que continue rodando os demais, mas tolerar falhas no build… 3. Como faço? 4. Isso é bastante comum, mas você pode contornar dessa forma: Édipo Daniel Aragão - Maven Básico
  • 45.
    Goal - install 45 1.A fase install chama a goal install do plugin install! 2. Esta goal instala o artefato no repositório local (.m2). 3. Se tiver um projeto com groupId = br.com.edipoaragao 4. E um artefactId = projeto1 5. Ele copiará o artefato para: a. ~/m2/repository/br/com/edipoaragao/projeto1/projeto1.jar Édipo Daniel Aragão - Maven Básico
  • 46.
    Goal - deploy 46 1.A fase deploy chama a goal deploy do plugin deploy! 2. Mas não um deploy de servidor, "o deploy da aplicação". 3. Instala num repositório remoto o artefato (Nexus ou um Artifactory). 4. Essa configuração pode ser simples ou complexa. Édipo Daniel Aragão - Maven Básico
  • 47.
    Ciclo de VidaSite 47 1. É o ciclo é exclusivo para gerar relatórios e documentação dos projetos; 2. Possui quatro fases: a. pre-site; b. site; c. pos-site; d. site-deploy. 3. Exemplo Sequência: a. pre-site → site → pos-site; Édipo Daniel Aragão - Maven Básico
  • 48.
    Ciclo de VidaSite 48 1. As fases mais conhecida: site; 2. 5. A configuração deste ciclo é interessante; a. Usa-se o mesmo plugin maven-site-plugin para duas fases: i. site, com goal: 1. site; ii. site-deploy com a goal: 1. deploy; Édipo Daniel Aragão - Maven Básico
  • 49.
    Ciclo de VidaSite 49 1. As fases mais conhecida: site; 2. 5. A configuração deste ciclo é interessante; a. Usa-se o mesmo plugin maven-site-plugin para duas fases: i. site, com goal: 1. site; ii. site-deploy com a goal: 1. deploy; Édipo Daniel Aragão - Maven Básico
  • 50.
    Ciclo de VidaSite 50 1. Definição oficial do site da Apache: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html Édipo Daniel Aragão - Maven Básico
  • 51.