parentsPom.xml 3.45 KB
<?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>