<?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>Source Rebels&#187; Tools</title>
	<atom:link href="http://www.sourcerebels.com/blog/tag/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sourcerebels.com/blog</link>
	<description>Por Edu Rodríguez Castillo</description>
	<lastBuildDate>Sat, 03 Jul 2010 06:03:44 +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>Integración rápida de Maven con Hudson y Archiva</title>
		<link>http://www.sourcerebels.com/blog/integracion-rapida-de-maven-con-apache-hudson-y-apache-archiva/</link>
		<comments>http://www.sourcerebels.com/blog/integracion-rapida-de-maven-con-apache-hudson-y-apache-archiva/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 06:14:54 +0000</pubDate>
		<dc:creator>Edu</dc:creator>
				<category><![CDATA[Archiva]]></category>
		<category><![CDATA[Continuous-Integration]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.sourcerebels.com/blog/?p=317</guid>
		<description><![CDATA[Supongamos que tenemos un proyecto dividido en varios módulos de funcionalidad y que cada módulo de funcionalidad genera un artefacto. Por ejemplo: core.jar: Almacena la lógica de negocio común. web.war: Aplicación web que hace uso de la lógica de negocio (utiliza core.jar). Cada vez que modificamos la lógica de negocio subiendo código al gestor de [...]]]></description>
			<content:encoded><![CDATA[<p>Supongamos que tenemos un proyecto dividido en varios módulos de funcionalidad y que cada módulo de funcionalidad genera un artefacto. Por ejemplo:</p>
<ul>
<li>core.jar: Almacena la lógica de negocio común.</li>
<li>web.war: Aplicación web que hace uso de la lógica de negocio (utiliza core.jar).</li>
</ul>
<p>Cada vez que modificamos la lógica de negocio subiendo código al gestor de versiones y se genere un artefacto core.jar queremos que se genere un nuevo artefacto web.war que incluya las modificaciones de el primero. Esto lo podemos conseguir fácilmente con Hudson, Maven y Archiva. Partimos de la base que tenemos el servidor Hudson montado y que tenemos dos proyectos definidos &#8220;core&#8221; y &#8220;web&#8221;. Ambos proyectos funcionan con Maven.</p>
<p><strong>Instalación y arranque rápido de Apache archiva:</strong></p>
<ul>
<li>Descargar y descomprimir Apache Archiva en la máquina que vaya a hacer de servidor de repositorios Maven. En mi caso es la misma máquina dónde se encuentra Hudson.</li>
<li>Ejecutar Apache Archiva:</li>
</ul>
<pre>
# $ARCHIVA_HOME/bin/archiva console
</pre>
<ul>
<li>Definir los repositorios que consideremos oportunos y usuarios con perfil &#8220;Repository Manager&#8221;. En mi caso trabajaré con el repositorio &#8220;snapshots&#8221; que viene definido por defecto.</li>
</ul>
<p><strong>Configuración Maven:</strong></p>
<ul>
<li>Editar el fichero pom.xml de todos los proyectos y añadir el repositorio archiva:</li>
</ul>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	...
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>archiva.snapshots<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://localhost:8081/archiva/repository/snapshots/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repositories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<ul>
<li>Editar el fichero pom.xml del proyecto web y añadir la dependencia al proyecto core, por ejemplo:</li>
</ul>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.sourcerebels<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>core<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0.0.1-SNAPSHOT<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<ul>
<li>Editar el fichero de configuración de Maven (settings.xml):</li>
</ul>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	...
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;server<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>archiva.internal<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;username<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>usuario_archiva<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/username<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;password<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>password_archiva<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/password<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/server<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;server<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>archiva.snapshots<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;username<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>usuario_archiva<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/username<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;password<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>password_archiva<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/password<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/server<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p><strong>Configuración Hudson:</strong></p>
<ul>
<li>Para cada uno de los artefactos del proyecto configuraremos que se despliegue en el repositorio &#8220;archiva.snapshots&#8221;:</li>
</ul>
<p><a href="http://www.sourcerebels.com/blog/wp-content/uploads/2010/06/hudson_config_archiva.png"><img class="alignleft size-full wp-image-327" title="hudson_config_archiva" src="http://www.sourcerebels.com/blog/wp-content/uploads/2010/06/hudson_config_archiva.png" alt="" width="595" height="313" /></a></p>
<ul>
<li>Con este punto conseguiremos que cada vez que se genere una nueva versión del fichero core.jar esta se archive en el repositorio Maven. Ahora para que el proyecto web se construya cuando alguno de los snapshots de los que depende sean construidos:</li>
</ul>
<p><a href="http://www.sourcerebels.com/blog/wp-content/uploads/2010/06/hudson_config_dependencias.png"><img class="size-full wp-image-324 alignleft" title="hudson_config_dependencias" src="http://www.sourcerebels.com/blog/wp-content/uploads/2010/06/hudson_config_dependencias.png" alt="" width="595" height="58" /></a></p>
<ul>
<br/><br/><br />
Esto es todo <img src='http://www.sourcerebels.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sourcerebels.com/blog/integracion-rapida-de-maven-con-apache-hudson-y-apache-archiva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atajos de teclado en Eclipse</title>
		<link>http://www.sourcerebels.com/blog/atajos-de-teclado-en-eclipse/</link>
		<comments>http://www.sourcerebels.com/blog/atajos-de-teclado-en-eclipse/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:47:05 +0000</pubDate>
		<dc:creator>Edu</dc:creator>
				<category><![CDATA[Best-Practices]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.sourcerebels.com/blog/?p=277</guid>
		<description><![CDATA[Estos son algunos de los atajos de teclado que me facilitan un poquito más el día a día cuando utilizo Eclipse para escribir código Java. No he querido abusar por que los considero bastante engorrosos de aprender pero si te interesa esto siempre puedes pulsar Ctrl+Shift+L e indicarme tus preferidos Ctrl+Alt+H &#8211; Mostrar la jerarquía [...]]]></description>
			<content:encoded><![CDATA[<p>Estos son algunos de los atajos de teclado que me facilitan un poquito más el día a día cuando utilizo Eclipse para escribir código Java. No he querido abusar por que los considero bastante engorrosos de aprender pero si te interesa esto siempre puedes pulsar Ctrl+Shift+L e indicarme tus preferidos <img src='http://www.sourcerebels.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Ctrl+Alt+H &#8211; Mostrar la jerarquía de llamadas de un método</strong></p>
<p>Si presionamos esta combinación de teclas se nos mostrará una pantalla donde, a modo de árbol, podremos inspeccionar toda la jerarquía de llamadas de un método, esto es, qué otros métodos le llaman, que otros métodos llaman a estos últimos y así sucesivamente. Haciendo click en cualquiera de los resultados, abriremos un editor directamente en el código.</p>
<p style="text-align: center;"><a href="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_ctrlalth.png"><img class="aligncenter size-full wp-image-303" title="eclipse_atajos_ctrlalth" src="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_ctrlalth.png" alt="" width="655" height="276" /></a></p>
<p><strong>Alt+Shift+P &#8211; Abrir fichero Maven pom.xml</strong></p>
<p>Esta combinación de teclas sirve para buscar el fichero pom.xml de cualquier artefacto tanto en el workspace como en cualquiera de los repositorios maven2 que tengamos definidos.</p>
<p style="text-align: center;"><a href="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_altshiftp.png"><img class="aligncenter size-full wp-image-298" title="eclipse_atajos_altshiftp" src="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_altshiftp.png" alt="" width="384" height="360" /></a></p>
<p><strong>Nota:</strong> Si no me equivoco, esta combinación sólo está disponible si utilizas el plug-in de integración de Apache Maven 2 m2eclipse.</p>
<p><strong>Ctrl+Shift+G &#8211; Buscar texto en workspace</strong></p>
<p>La siguiente combinación de teclas permite buscar rápidamente el texto seleccionado en todo el workspace. La ventana de resultados sería similar a esta.</p>
<p style="text-align: center;"><a href="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_ctrlaltg1.png"><img class="aligncenter size-full wp-image-295" title="eclipse_atajos_ctrlaltg" src="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_ctrlaltg1.png" alt="" width="629" height="150" /></a></p>
<p><strong>Ctrl+Shift+R / Ctrl+Shift+T &#8211; Abrir recurso / Abrir tipo</strong></p>
<p>En el caso de Ctrl+Shift+R Muestra un cuadro de dialogo donde podemos teclear un texto y que permite filtrar rápidamente un fichero de los proyectos que tengamos abiertos en ese momento en el workspace. El funcionamiento de Ctrl+Shift+T es similar al de Ctrl+Shif+R sólo que en este caso podemos abrir tipos de Java únicamente.</p>
<p><a href="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_ctrlshiftrctrlshiftt.png"><img class="aligncenter size-full wp-image-279" title="eclipse_atajos_ctrlshiftrctrlshiftt" src="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_ctrlshiftrctrlshiftt.png" alt="" width="480" height="400" /></a><br />
<strong>Nota: </strong>Abrir tipo funciona únicamente, al menos a mi, en la perspectiva Java o J2EE</p>
<p><strong>F4 &#8211; Mostrar la jerarquía de un tipo</strong></p>
<p><strong><span style="font-weight: normal;">Sitúa el cursor sobre un tipo en un código Java, pulsa F4 y te aparecerá una pantalla (en mi configuración de Eclipse la de más a la izquierda). Esta pantalla permite ver la jerarquía de herencia de una clase Java (parte superior) así como la lista de propiedades y métodos de la misma clase (parte inferior).</span></strong></p>
<p style="text-align: center;"><a href="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_f4.png"><img class="aligncenter size-full wp-image-278" title="eclipse_atajos_f4" src="http://www.sourcerebels.com/blog/wp-content/uploads/2010/02/eclipse_atajos_f4.png" alt="" width="575" height="580" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sourcerebels.com/blog/atajos-de-teclado-en-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Terminator. Terminal Emulator</title>
		<link>http://www.sourcerebels.com/blog/terminator-terminal-emulator/</link>
		<comments>http://www.sourcerebels.com/blog/terminator-terminal-emulator/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 11:06:34 +0000</pubDate>
		<dc:creator>Edu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.sourcerebels.com/blog/?p=229</guid>
		<description><![CDATA[Cool terminal emulator for GNU/Linux users. I installed on my Ubuntu box just typping: $ sudo apt-get update $ sudo apt-get install terminator Looks like this:]]></description>
			<content:encoded><![CDATA[<p>Cool terminal emulator for GNU/Linux users.</p>
<p>I installed on my Ubuntu box just typping:</p>
<pre>$ sudo apt-get update
$ sudo apt-get install terminator</pre>
<p>Looks like this:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-230" title="Pantallazo-edu@somachigun: ~ - Terminator" src="http://www.sourcerebels.com/blog/wp-content/uploads/2009/11/Pantallazo-edu@somachigun-Terminator.png" alt="Pantallazo-edu@somachigun: ~ - Terminator" width="582" height="287" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sourcerebels.com/blog/terminator-terminal-emulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
