parentsPom.xml
3.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
<chapter id="parentpom">
<title>Super POM</title>
<para>
O Demoiselle faz uso da solução proposta pelo Apache Maven para diversas fases do desenvolvimento de software.
O artefato principal do Maven é o POM.XML que é o arquivo XML que contém todas as informações necessárias para a ferramenta gerenciar o projeto,
entre as quais está o gerenciamento de dependências(bibliotecas), build do projeto, etc.
Mas é muito comum que vários projetos, vinculados ou não, utilizem muitas configurações em comum.
Para o “reaproveitamento” dessas configurações, evitando a cópia de texto, o Maven provê dois tipos de estratégia:
</para>
<para>
-Por <ulink url="http://maven.apache.org/pom.html#Inheritance">herança</ulink> ou <ulink url="http://maven.apache.org/pom.html#Aggregation">agregação</ulink>.
</para>
<para>
No Demoiselle 2 a estratégia adota foi também o da herança. E o termo usado no Demoiselle para identificar essa estratégia é que chamamos de Parent POM.
</para>
<para>Seguindo esse conceito, foram criados alguns arquivos (pom.xml) e também disponibilizados no repositório Maven do Demoiselle , que facilitam a configuração dos projetos, e inclusive para o desenvolvimento do próprio Demoiselle.
Os arquivos gerados foram divididos em perfis, para que o desenvolvedor possa escolher qual usar de acordo com o tipo de aplicação que está desenvolvendo.
Assim, a alteração no POM.XML da aplicação será a minima possível. Outra vantagem, é que as bibliotecas apontadas como dependências são testadas pela equipe do Demoiselle o que evita eventuais incompatibilidades.</para>
<tip>Para excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions </tip>
<section>
<title>Demoiselle-Minimal-Parent</title>
<para>
Configurações úteis para todas as aplicações que utilizam o framework.
O ideal é que toda aplicação que utiliza o Demoiselle herde deste POM ou de uma de suas especializações.
</para>
</section>
<section>
<title>Demoiselle-SE-Parent</title>
<para>
Especialização do POM mínimo, contendo configurações úteis para todas as aplicações <!-- SE -->Desktop que utilizam o framework, mas sem definição da
camada de apresentação que será utilizada.
</para>
</section>
<section>
<title>Demoiselle-Servlet-Parent</title>
<para>
Especialização do POM mínimo, contendo profiles para Tomcat 6, Tomcat 7, GAE, Glassfish 3, JBoss 6 e JBoss 7, e outras configurações úteis para todas
as aplicações JEE6/Web que utilizam o Demoiselle, mas sem a definição de qual camada de apresentação utilizará. Entre as dependências referênciadas
por este POM está a extensão Demoiselle-Servlet.
</para>
</section>
<section>
<title>Demoiselle-JSF-Parent</title>
<para>
Especialização do POM demoiselle-servlet-parent, contendo configurações úteis e necessárias para todas as aplicações que utilizarão a tecnologia JSF2
para camada de apresentação. Entre as dependências referênciadas por este POM está obviamente a extensão Demoiselle-JSF.
</para>
</section>
<section>
<title>Demoiselle-Archetype-Parent</title>
<para>
Contém configurações comuns a todos os projetos geradores de arquétipos.
</para>
</section>
</chapter>