<?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>Sonatype Blog &#187; Guest</title>
	<atom:link href="http://blog.sonatype.com/people/tag/guest/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sonatype.com/people</link>
	<description>Sonatype is transforming software development with tools, information and services that enable organizations to build better software, faster, using open-source components.</description>
	<lastBuildDate>Thu, 16 May 2013 18:53:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Bringing Java and Linux together on the way to Continuous Live Deployment</title>
		<link>http://blog.sonatype.com/people/2011/11/bringing-java-and-linux-together-on-the-way-to-continuous-live-deployment/</link>
		<comments>http://blog.sonatype.com/people/2011/11/bringing-java-and-linux-together-on-the-way-to-continuous-live-deployment/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 16:38:12 +0000</pubDate>
		<dc:creator>Sebastian Herold</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Guest]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9581</guid>
		<description><![CDATA[Today we have a guest post from Sebastian Herold, a software architect at ImmobilienScout24, the largest German online marketplace for real estate. Sebastian and his team created a YUM plugin for Nexus to better interface between the Java and Linux worlds. &#160; In 2010 we switched our build infrastructure to Apache Maven, Sonatype Nexus and [...]]]></description>
				<content:encoded><![CDATA[<div><em>Today we have a guest post from Sebastian Herold, a software architect at ImmobilienScout24, the largest German online marketplace for real estate. Sebastian and his team created a YUM plugin for Nexus to better interface between the Java and Linux worlds.</em>
<em><span id="more-9581"></span></em>
&nbsp;

In 2010 we switched our build infrastructure to Apache Maven, Sonatype Nexus and JetBrains TeamCity.  We then focused on the other side of our delivery pipeline, deployment. Linux package managers, like RPM, bring everything you need: compression, cleanup, unique file ownership, install/post-install scripts and fine-grained dependency management. We thought, why not deploy Java applications via RPM to our Linux-based data centers?

We knew that the <a href="http://mojo.codehaus.org/rpm-maven-plugin/">RPM Maven Plugin</a> made it easy to build an RPM in Maven’s package phase and to register it as a project artifact. <a rel="attachment wp-att-9583" href="http://www.sonatype.com/people/2011/11/bringing-java-and-linux-together-on-the-way-to-continuous-live-deployment/cld-at-is24/"><img class="alignright size-full wp-image-9583" title="Development Infrastructure using Linux and Nexus" src="http://www.sonatype.com/people/wp-content/uploads/2011/11/CLD-at-IS24.png" alt="Development Infrastructure using Linux and Nexus" width="329" height="222" /></a>With the help of Maven it would be automatically deployed to Nexus. The only question we had was how to transform Nexus Maven repositories into YUM repositories.  In case you didn’t know, YUM is an automatic updater and package installer/remover for RPM systems.

Nexus is open source, so we decided to build a plugin. The design was quite easy. We just listen to <em>RepositoryItemEventStore</em> and every time we detect that an RPM package gets stored, we execute the Linux command <em>createrepo</em> to generate the YUM repository. This works out very well for us. Nexus repository URLs like <span style="text-decoration: underline;">http://nexus:8081/nexus/content/repositories/releases</span> also become YUM repository urls in your <em>/etc/yum.repos.d/*.repo</em> files.  In combination with TeamCity and a cronjob doing <em>YUM upgrades</em> every minute on the production servers, Continuous Live Deployment (CLD) becomes a simple task of configuring the right URLs.  Of course, it’s not quite that simple as I’ve skipped the details.  If you want to learn more about our architecture, you can check out this <a title="Continuous Deployment Presentation" href="http://velocityconf.com/velocityeu/public/schedule/detail/21669" target="_blank">presentation</a> from one of my colleagues.

<em>
</em>

</div>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sonatype.com/people/2011/11/bringing-java-and-linux-together-on-the-way-to-continuous-live-deployment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
