Parent 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 desnecessária vinda do Parent, 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-se-parent Especialização do POM mínimo, contendo configurações úteis para todas as aplicações Desktop que utilizam o framework, mas sem definição da camada de apresentação que será utilizada.
demoiselle-servlet-parent 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 referenciadas por este POM está a extensão demoiselle-servlet.
demoiselle-jsf-parent 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.
demoiselle-archetype-parent Contém configurações comuns a todos os projetos geradores de arquétipos.