<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>República I.T. &#187; maven</title>
	<atom:link href="http://www.republicait.com/tags/maven/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.republicait.com</link>
	<description>Progamación, Tecnología y mucho más...</description>
	<lastBuildDate>Thu, 20 May 2010 20:22:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Project Object Model (POM)</title>
		<link>http://www.republicait.com/2009/07/24/project-object-model/</link>
		<comments>http://www.republicait.com/2009/07/24/project-object-model/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 20:49:23 +0000</pubDate>
		<dc:creator>dcamargo.n</dc:creator>
				<category><![CDATA[Administración de Proyectos]]></category>
		<category><![CDATA[Configuración]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[pom]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.republicait.com/?p=232</guid>
		<description><![CDATA[El POM es un archivo XML que representa la estructura de un proyecto Maven, este archivo lleva por nombre pom.xml, actualmente la versión soportada por Maven es la 4.0.]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>El POM es un archivo XML que representa la estructura de un proyecto Maven, este archivo lleva por nombre pom.xml, actualmente la versión soportada por Maven es la 4.0.</p>
<p>Se puede decir que un archivo POM esta compuesto de los siguientes elementos o secciones:</p>
<ol>
<li>Elementos básicos.</li>
<li>Información del proyecto.</li>
<li>Módulos.</li>
<li>Herencia.</li>
<li>Dependencias.</li>
<li>Propiedades.</li>
<li>Configuración de construcción del proyecto.</li>
<li>Configuración del entorno de construcción.
<ul>
<li>Entorno del proyecto.</li>
<li>Entorno de Maven.</li>
</ul>
</li>
</ol>
<pre class="brush:xml">&lt;project&gt;
 &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

 &lt;!-- Elementos básicos --&gt;
 &lt;groupId&gt;...&lt;/groupId&gt;
 &lt;artifactId&gt;...&lt;/artifactId&gt;
 &lt;version&gt;...&lt;/version&gt;
 &lt;packaging&gt;...&lt;/packaging&gt;

 &lt;!-- Información del proyecto --&gt;
 &lt;name&gt;...&lt;/name&gt;
 &lt;description&gt;...&lt;/description&gt;
 &lt;url&gt;...&lt;/url&gt;
 &lt;inceptionYear&gt;...&lt;/inceptionYear&gt;
 &lt;licenses&gt;...&lt;/licenses&gt;
 &lt;organization&gt;...&lt;/organization&gt;
 &lt;developers&gt;...&lt;/developers&gt;
 &lt;contributors&gt;...&lt;/contributors&gt;

 &lt;!-- Módulos --&gt;
 &lt;modules&gt;...&lt;/modules&gt;

 &lt;!-- Herencia --&gt;
 &lt;parent&gt;...&lt;/parent&gt;
 &lt;dependencyManagement&gt;...&lt;/dependencyManagement&gt;

 &lt;!-- Dependencias --&gt;
 &lt;dependencies&gt;...&lt;/dependencies&gt;

 &lt;!-- Propiedades --&gt;
 &lt;properties&gt;...&lt;/properties&gt;

 &lt;!-- Configuración de construcción del proyecto --&gt;
 &lt;build&gt;...&lt;/build&gt;
 &lt;reporting&gt;...&lt;/reporting&gt;

 &lt;!-- Entorno del proyecto --&gt;
 &lt;issueManagement&gt;...&lt;/issueManagement&gt;
 &lt;ciManagement&gt;...&lt;/ciManagement&gt;
 &lt;mailingLists&gt;...&lt;/mailingLists&gt;
 &lt;scm&gt;...&lt;/scm&gt;

 &lt;!-- Entorno de Maven --&gt;
 &lt;prerequisites&gt;...&lt;/prerequisites&gt;
 &lt;repositories&gt;...&lt;/repositories&gt;
 &lt;pluginRepositories&gt;...&lt;/pluginRepositories&gt;
 &lt;distributionManagement&gt;...&lt;/distributionManagement&gt;
 &lt;profiles&gt;...&lt;/profiles&gt;

&lt;/project&gt;</pre>
<h3>Definiciones</h3>
<p><strong>groupId:</strong><br />
Es el nombre del paquete o grupo al que pertenece el proyecto, como por ejemplo <code>com.csd-web.utils</code></p>
<p><strong>artifactId:</strong><br />
Es el nombre del proyecto o del módulo a desarollar, por ejemplo <code>logger</code></p>
<p><strong>version:</strong><br />
Es la versión actual del módulo o proyecto, por ejemplo <code>0.1</code></p>
<p><strong>modules:</strong><br />
Es una lista de los módulos que componen el proyecto, esto se utiliza cuando se trata de  un proyecto multimódulo.</p>
<p><strong>parent:</strong><br />
Esta etiqueta se utiliza si nuestro proyecto pertenece a un proyecto padre del cual debe heredar ciertas características, todos los proyectos tienen como padre SuperPOM por defecto</p>
<p><strong>dependencyManagement:</strong><br />
En esta etiqueta se indican cuales seran las dependencias de los proyectos hijos que deben heredar del POM padre.</p>
<p><strong>dependencies:</strong><br />
Aquí se especifican todas las dependencias desde otros proyectos externos para que Maven los incluya en el momento de construir el proyecto.</p>
<p><strong>properties:</strong><br />
Son las propiedades o variables que se pueden definir a la hora de la construcción del proyecto.</p>
<h3>Ejemplo de un POM</h3>
<p>Aqui les muestro el archivo POM del proyecto <a title="SLF4J" href="http://www.slf4j.org" target="_blank">SLF4J</a></p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd"&gt;

 &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

 &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
 &lt;artifactId&gt;slf4j-parent&lt;/artifactId&gt;
 &lt;version&gt;1.5.8&lt;/version&gt;

 &lt;packaging&gt;pom&lt;/packaging&gt;
 &lt;name&gt;SLF4J&lt;/name&gt;

 &lt;url&gt;http://www.slf4j.org&lt;/url&gt;

 &lt;organization&gt;
 &lt;name&gt;QOS.ch&lt;/name&gt;
 &lt;url&gt;http://www.qos.ch&lt;/url&gt;
 &lt;/organization&gt;
 &lt;inceptionYear&gt;2005&lt;/inceptionYear&gt;

 &lt;properties&gt;
 &lt;/properties&gt;

 &lt;modules&gt;
 &lt;module&gt;slf4j-api&lt;/module&gt;
 &lt;module&gt;slf4j-simple&lt;/module&gt;
 &lt;module&gt;slf4j-nop&lt;/module&gt;
 &lt;module&gt;slf4j-jdk14&lt;/module&gt;
 &lt;module&gt;slf4j-log4j12&lt;/module&gt;
 &lt;module&gt;slf4j-jcl&lt;/module&gt;
 &lt;module&gt;slf4j-ext&lt;/module&gt;
 &lt;module&gt;jcl-over-slf4j&lt;/module&gt;
 &lt;module&gt;jcl104-over-slf4j&lt;/module&gt;
 &lt;module&gt;log4j-over-slf4j&lt;/module&gt;
 &lt;module&gt;jul-to-slf4j&lt;/module&gt;
 &lt;module&gt;integration&lt;/module&gt;
 &lt;module&gt;slf4j-site&lt;/module&gt;
 &lt;module&gt;slf4j-migrator&lt;/module&gt;
 &lt;/modules&gt;

 &lt;dependencies&gt;
 &lt;dependency&gt;
 &lt;groupId&gt;junit&lt;/groupId&gt;
 &lt;artifactId&gt;junit&lt;/artifactId&gt;
 &lt;version&gt;3.8.1&lt;/version&gt;
 &lt;scope&gt;test&lt;/scope&gt;
 &lt;/dependency&gt;
 &lt;/dependencies&gt;

 &lt;dependencyManagement&gt;
 &lt;dependencies&gt;

 &lt;dependency&gt;
 &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
 &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
 &lt;version&gt;${project.version}&lt;/version&gt;
 &lt;/dependency&gt;

 &lt;dependency&gt;
 &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
 &lt;artifactId&gt;slf4j-jdk14&lt;/artifactId&gt;
 &lt;version&gt;${project.version}&lt;/version&gt;
 &lt;/dependency&gt;

 &lt;dependency&gt;
 &lt;groupId&gt;log4j&lt;/groupId&gt;
 &lt;artifactId&gt;log4j&lt;/artifactId&gt;
 &lt;version&gt;1.2.14&lt;/version&gt;
 &lt;/dependency&gt;

 &lt;/dependencies&gt;
 &lt;/dependencyManagement&gt;

 &lt;build&gt;
 &lt;resources&gt;
 &lt;resource&gt;
 &lt;directory&gt;src/main/resources&lt;/directory&gt;
 &lt;filtering&gt;true&lt;/filtering&gt;
 &lt;/resource&gt;
 &lt;/resources&gt;

 &lt;plugins&gt;
 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
 &lt;configuration&gt;
 &lt;source&gt;1.3&lt;/source&gt;
 &lt;target&gt;1.3&lt;/target&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
 &lt;configuration&gt;
 &lt;forkMode&gt;once&lt;/forkMode&gt;
 &lt;reportFormat&gt;plain&lt;/reportFormat&gt;
 &lt;trimStackTrace&gt;false&lt;/trimStackTrace&gt;
 &lt;excludes&gt;
 &lt;exclude&gt;**/AllTest.java&lt;/exclude&gt;
 &lt;exclude&gt;**/PackageTest.java&lt;/exclude&gt;
 &lt;/excludes&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;        

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;
 &lt;executions&gt;
 &lt;execution&gt;
 &lt;phase&gt;package&lt;/phase&gt;
 &lt;goals&gt;
 &lt;goal&gt;jar&lt;/goal&gt;
 &lt;/goals&gt;
 &lt;/execution&gt;
 &lt;/executions&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;
 &lt;configuration&gt;
 &lt;aggregate&gt;true&lt;/aggregate&gt;
 &lt;excludePackageNames&gt;org.slf4j.migrator:org.slf4j.migrator.*&lt;/excludePackageNames&gt;
 &lt;links&gt;
 &lt;link&gt;

http://java.sun.com/j2se/1.5.0/docs/api

 &lt;/link&gt;
 &lt;/links&gt;
 &lt;groups&gt;
 &lt;group&gt;
 &lt;title&gt;SLF4J packages&lt;/title&gt;
 &lt;packages&gt;org.slf4j:org.slf4j.*&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;SLF4J extensions&lt;/title&gt;
 &lt;packages&gt;org.slf4j.profiler:org.slf4j.ext:org.slf4j.instrumentation:org.slf4j.agent&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;Jakarta Commons Logging packages&lt;/title&gt;
 &lt;packages&gt;org.apache.commons.*&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;Apache log4j&lt;/title&gt;
 &lt;packages&gt;org.apache.log4j&lt;/packages&gt;
 &lt;/group&gt;

 &lt;group&gt;
 &lt;title&gt;java.util.logging (JUL) to SLF4J bridge&lt;/title&gt;
 &lt;packages&gt;org.slf4j.bridge&lt;/packages&gt;
 &lt;/group&gt;

 &lt;/groups&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;/plugins&gt;

 &lt;/build&gt;

 &lt;profiles&gt;
 &lt;profile&gt;
 &lt;id&gt;skipTests&lt;/id&gt;
 &lt;properties&gt;
 &lt;maven.test.skip&gt;true&lt;/maven.test.skip&gt;
 &lt;/properties&gt;
 &lt;/profile&gt;
 &lt;profile&gt;
 &lt;id&gt;osgi&lt;/id&gt;
 &lt;modules&gt;
 &lt;module&gt;osgi-over-slf4j&lt;/module&gt;
 &lt;module&gt;slf4j-osgi-test-bundle&lt;/module&gt;
 &lt;module&gt;slf4j-osgi-integration-test&lt;/module&gt;
 &lt;/modules&gt;

 &lt;repositories&gt;
 &lt;repository&gt;
 &lt;id&gt;m2apache.snapshots&lt;/id&gt;
 &lt;url&gt;http://people.apache.org/repo/m2-snapshot-repository&lt;/url&gt;
 &lt;releases&gt;
 &lt;enabled&gt;false&lt;/enabled&gt;
 &lt;/releases&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/repository&gt;

 &lt;repository&gt;
 &lt;id&gt;springframework.org&lt;/id&gt;
 &lt;name&gt;Springframework Maven SNAPSHOT Repository&lt;/name&gt;
 &lt;url&gt;http://static.springframework.org/maven2-snapshots/&lt;/url&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/repository&gt;

 &lt;/repositories&gt;

 &lt;pluginRepositories&gt;
 &lt;pluginRepository&gt;
 &lt;id&gt;apache.snapshots&lt;/id&gt;
 &lt;name&gt;Apache Snapshot Plugin Repository&lt;/name&gt;
 &lt;url&gt;http://people.apache.org/repo/m2-snapshot-repository&lt;/url&gt;
 &lt;releases&gt;
 &lt;enabled&gt;false&lt;/enabled&gt;
 &lt;/releases&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/pluginRepository&gt;
 &lt;/pluginRepositories&gt;

 &lt;/profile&gt;
 &lt;/profiles&gt;

 &lt;pluginRepositories&gt;
 &lt;pluginRepository&gt;
 &lt;id&gt;apache.snapshots&lt;/id&gt;
 &lt;name&gt;Apache Snapshot Plugin Repository&lt;/name&gt;
 &lt;url&gt;http://people.apache.org/repo/m2-snapshot-repository&lt;/url&gt;
 &lt;releases&gt;
 &lt;enabled&gt;false&lt;/enabled&gt;
 &lt;/releases&gt;
 &lt;snapshots&gt;
 &lt;enabled&gt;true&lt;/enabled&gt;
 &lt;/snapshots&gt;
 &lt;/pluginRepository&gt;
 &lt;/pluginRepositories&gt;

 &lt;reporting&gt;
 &lt;plugins&gt;
 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-site-plugin&lt;/artifactId&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-project-info-reports-plugin&lt;/artifactId&gt;
 &lt;reportSets&gt;
 &lt;reportSet&gt;&lt;reports/&gt;&lt;/reportSet&gt;
 &lt;/reportSets&gt;
 &lt;/plugin&gt;        

 &lt;plugin&gt;
 &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
 &lt;version&gt;2.1&lt;/version&gt;
 &lt;configuration&gt;
 &lt;descriptors&gt;
 &lt;descriptor&gt;
 src/main/assembly/source.xml
 &lt;/descriptor&gt;
 &lt;/descriptors&gt;
 &lt;finalName&gt;slf4j-${project.version}&lt;/finalName&gt;
 &lt;appendAssemblyId&gt;false&lt;/appendAssemblyId&gt;
 &lt;outputDirectory&gt;target/site/dist/&lt;/outputDirectory&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;plugin&gt;
 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
 &lt;artifactId&gt;maven-jxr-plugin&lt;/artifactId&gt;
 &lt;reportSets&gt;
 &lt;reportSet&gt;
 &lt;reports&gt;
 &lt;report&gt;jxr&lt;/report&gt;
 &lt;report&gt;test-jxr&lt;/report&gt;
 &lt;/reports&gt;
 &lt;/reportSet&gt;
 &lt;/reportSets&gt;
 &lt;configuration&gt;
 &lt;aggregate&gt;true&lt;/aggregate&gt;
 &lt;javadocDir&gt;target/site/api/&lt;/javadocDir&gt;
 &lt;linkJavadoc&gt;true&lt;/linkJavadoc&gt;
 &lt;/configuration&gt;
 &lt;/plugin&gt;

 &lt;/plugins&gt;

 &lt;/reporting&gt;

 &lt;scm&gt;
 &lt;connection&gt;scm:svn:http://svn.slf4j.org/repos/slf4j/trunk&lt;/connection&gt;
 &lt;developerConnection&gt;scm:svn:https://svn.slf4j.org/repos/slf4j/trunk&lt;/developerConnection&gt;
 &lt;url&gt;http://svn.slf4j.org/viewvc/slf4j/trunk/&lt;/url&gt;
 &lt;/scm&gt;

 &lt;distributionManagement&gt;
 &lt;site&gt;
 &lt;id&gt;pixie&lt;/id&gt;
 &lt;url&gt;scp://pixie/var/www/www.slf4j.org/htdocs/&lt;/url&gt;
 &lt;/site&gt;

 &lt;repository&gt;
 &lt;id&gt;pixie&lt;/id&gt;
 &lt;url&gt;scp://pixie/var/mvnrepo/&lt;/url&gt;
 &lt;/repository&gt;

 &lt;/distributionManagement&gt;

&lt;/project&gt;</pre>
<h3>Enlaces Externos</h3>
<p>Algunos enlaces en los cuales puedes encontrar una referencia mas completa acerca de los archivos POM</p>
<ul>
<li><a title="Project Object Model (POM) de Maven" href="http://www.elholgazan.com/2007/08/project-object-model-pom-de-maven.html" target="_blank">Project Object Model (POM) de Maven</a></li>
<li><a title="The Maven 2 POM demystified" href="http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html" target="_blank">The Maven 2 POM demystified</a></li>
<li><a title="Introduction to the POM" href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html" target="_blank">Introduction to the POM</a></li>
</ul>
Términos de búsqueda<ul><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="<module> pom maven svn osgi"><module> pom maven svn osgi</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="maven <prerequisites>">maven <prerequisites></a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="maven 2 1 site descriptor parent pom">maven 2 1 site descriptor parent pom</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="maven appendAssemblyId example">maven appendAssemblyId example</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="maven distributionmanagement parent pom">maven distributionmanagement parent pom</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="maven org slf4j">maven org slf4j</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="maven plugin dojo profiles">maven plugin dojo profiles</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="osgi profile pom">osgi profile pom</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="pom exclude">pom exclude</a></li><li><a href="http://www.republicait.com/2009/07/24/project-object-model/" title="pom fork mode">pom fork mode</a></li></ul><!-- SEO SearchTerms Tagging 2 plugin took 3.702 ms -->]]></content:encoded>
			<wfw:commentRss>http://www.republicait.com/2009/07/24/project-object-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
