Super POM
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:
-Por herança ou agregação.
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.
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 excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions
Demoiselle-Minimal-Parent
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.
Demoiselle-WEB-Parent
Especialização do POM mínimo, contendo 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á.
Demoiselle-JSF-Parent
Especialização do POM demoiselle-web-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.