<?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; Nexus</title>
	<atom:link href="http://www.sonatype.com/people/tag/nexus/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.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, 09 Feb 2012 15:48:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Nexus: Don&#8217;t dive in until you know how to swim</title>
		<link>http://www.sonatype.com/people/2012/02/nexus-dont-dive-in-until-you-know-how-to-swim/</link>
		<comments>http://www.sonatype.com/people/2012/02/nexus-dont-dive-in-until-you-know-how-to-swim/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 15:48:42 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9911</guid>
		<description><![CDATA[When you adopt a new development tool how much time do you set aside to understand it? Do you just download a new tool like Maven, rip open the archive, install it, and just start clicking around? Or, do you read articles and books first? As we prepare to release Nexus 2.0, I’m curious about [...]]]></description>
			<content:encoded><![CDATA[<p>When you adopt a new development tool how much time do you set aside to understand it?   Do you just download a new tool like Maven, rip open the archive, install it, and just start clicking around?  Or, do you read articles and books first?   As we prepare to release Nexus 2.0, I’m curious about how current Nexus users adopted the tool.  Leave a comment and let us know how you adopted and learned the tool, and if you had either positive or negative experiences.</p>

<p><b>My Assumption: Most of us don’t read documentation&#8230;</b></p>

<p>Based on my experience, I’m going to guess that most of us likely just dive into implementation when it comes to new tools and libraries.    Even though one of my focuses is documentation, I’m only assuming that 20% of you read anything in the book prior to install.   Sonatype understands this and with every Nexus release our engineers and product managers are trying to implement new features to be as straightforward as possible.</p>

<p>This isn&#8217;t to say that we&#8217;re no longer writing documentation.  Documentation is essential when you are setting up critical, enterprise-grade development infrastructure.  In my time consulting and training I’ve seen some really “interesting” builds that have developed from what I’m calling the “Just Dive In” approach: what happens when an organization adopts a tool before it understands what the tool provides or even what it is.  What happens when you never take time to learn about a tool.</p>

<p><b>The “Just Dive In” Approach</b></p>

<p>This is a common malady for programmers, and we’re almost all guilty of this approach at some point in our career.  Someone tells you to check out Hudson or Maven, you read some of introductory articles on DZone, and you immediately dive in.    Even though you might only have a rudimentary grasp of the tool, you’ve converted your build over to Maven and Nexus.   It’s full of duct tape because you didn’t fully grasp the Maven lifecycle, or you don’t use snapshots because you didn’t have time to learn about the differences between release and snapshot artifacts.</p>

<p><b>Note:</b> I’ve been there.  This is how busy developers adopt new technologies.   You adopt a new technology like Spring or a new web framework by doing.   Having time to read a full length book on a new technology is rare.   My own theory is that it always takes two attempts to adopt a new technology with the first attempt being a dress rehearsal full of mistakes and missteps.  So back to our example&#8230;</p>

<p>Maybe you make a mental note to purchase the book or take a training course on the technology&#8230; later, when the project calms down, but time moves quickly these days.   Deadlines and meetings multiply and suddenly you find yourself unable to take some time out to really learn Maven or Nexus.   All of a sudden your half-baked prototype become a production dependency.</p>

<p><b>Hoping you can swim&#8230;</b></p>

<p>As a consultant this is usually when someone calls me up and needs some emergency help.  They migrated to Maven (or they set up Nexus) but they didn’t take a day to start from the fundamentals.   A product deadline is approaching and someone needs to do the equivalent of open heart surgery on a non-standard build in the matter of days.   Often the changes that need to be made to fix a build full of bad assumptions and introduce more compromises and workarounds.  This is expensive, last-minute work that could have been avoided with training.</p>

<p>While most of us don’t read documentation, I think it is up to managers to make sure that someone in the organization has a grasp of the fundamentals from the very beginning.     That’s my cue to tell you about <a href="http://www.sonatype.com/Services/Training">our Nexus training class</a>, it’s a comprehensive introduction to Nexus best practices and it walks you through the decisions you’ll need to make *before* you introduce a repository manager into your architecture.  <i>(Let&#8217;s see that&#8217;s a couple hundreds dollars vs. the price of an emergency consulting engagement &#8211; if you have a complex environment, I&#8217;d recommend the training first.)</i></p>

<p><b>Conclusion: Check out that pool before you dive in&#8230;</b></p>

<p>This rapid adoption trend has become more apparent in the last decade.   As an industry we’re trying to create developer-facing APIs, tools, and frameworks that are simpler to adopt and use.  While you should be able to get up and running with an evaluation of Nexus or Maven in a few minutes, we can’t let this simplicity keep us from a fundamental truth.  When you don’t set aside enough time to learn a new build tool or piece of development infrastructure you end up with these half-migrated disasters that end up having to be rewritten often at the last minute.</p>

<p>If you want to avoid this situation, set aside some time to understand products before you dive into a production implementation.   Understand the fundamentals of repository management and dependencies before you implement an enterprise-class build and Nexus deployment.   Resist this urge to just get started and read the introductions to some of these books we&#8217;ve invested in before you start implementing a deployment.  It&#8217;ll save you time and money, I promise.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2012/02/nexus-dont-dive-in-until-you-know-how-to-swim/&via=SonatypeCM&text=Nexus: Don't dive in until you know how to swim&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2012/02/nexus-dont-dive-in-until-you-know-how-to-swim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus 2.0 is coming. Join Jason for the first demo.</title>
		<link>http://www.sonatype.com/people/2012/02/nexus-2-0-is-coming-join-jason-for-the-first-demo/</link>
		<comments>http://www.sonatype.com/people/2012/02/nexus-2-0-is-coming-join-jason-for-the-first-demo/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 14:38:05 +0000</pubDate>
		<dc:creator>Emily Blades</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9899</guid>
		<description><![CDATA[&#160; Join us Tuesday, February 21 at 11:00AM (GMT-0500) for a 30 minute demonstration of Nexus 2.0, with Jason van Zyl, Sonatype Founder &#38; CTO. You&#8217;ll see all the new features and learn how Nexus 2.0 will help you: Avoid downtime by using a highly available architecture Improve repository management with enhanced component information Standardize [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>

<p>Join us Tuesday, February 21 at 11:00AM (GMT-0500) for a 30 minute demonstration of Nexus 2.0, with Jason van Zyl, Sonatype Founder &amp; CTO. You&#8217;ll see all the new features and learn how Nexus 2.0 will help you:</p>

<ul>
    <li> Avoid downtime by using a highly available architecture</li>
    <li> Improve repository management with enhanced component information</li>
    <li> Standardize on a single repository for .NET, Java, and OSGi</li>
</ul>

<p><a href="http://sonatype.com/Request/Webinar-Registration/Nexus-2.0-Live-Demo-Registration?webinar=Nexus2.0LiveDemo_blog&amp;utm_source=Blog&amp;utm_medium=Blog&amp;utm_campaign=Nexus2.0LiveDemo" target="_blank"><strong>Reserve Your Seat </strong></a></p>

<p>If you register, you&#8217;ll also receive access to the recording after the event. So if something comes up and you can&#8217;t make it, you won&#8217;t miss out.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2012/02/nexus-2-0-is-coming-join-jason-for-the-first-demo/&via=SonatypeCM&text=Nexus 2.0 is coming. Join Jason for the first demo.&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2012/02/nexus-2-0-is-coming-join-jason-for-the-first-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Simple Reminder for Maven/Gradle/Ivy Users: Proxy Central</title>
		<link>http://www.sonatype.com/people/2012/01/a-simple-reminder-for-mavengradleivy-users-proxy-central/</link>
		<comments>http://www.sonatype.com/people/2012/01/a-simple-reminder-for-mavengradleivy-users-proxy-central/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:59:30 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[central]]></category>
		<category><![CDATA[Nexus]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9878</guid>
		<description><![CDATA[Over the course of the past few years, I’ve interacted with hundreds of people when talking about build tools and repository management.   It continues to surprise me how many people don’t realize where these artifacts come from.   When you run a build and these JARs just show up alongside all of their dependencies, [...]]]></description>
			<content:encoded><![CDATA[<p>Over the course of the past few years, I’ve interacted with hundreds of people when talking about build tools and repository management.   It continues to surprise me how many people don’t realize where these artifacts come from.   When you run a build and these JARs just show up alongside all of their dependencies, it’s like magic to most people.     If you know how it works, it’s very obvious to you that running a repository manager is the right thing to do.  This post is a reminder to everyone using build tools that rely on Central: take time to proxy Central with a repository manager.</p>

<h2>“Wait, that’s how Central works?”</h2>

<p>There’s something so automatic about dependency management in Maven that it often takes people a few months to understand exactly where those JAR files are coming from.
In an 8 hour Maven class, I get to dependencies in the third hour, and after describing Central, what it is was like before Central, how metadata is stored in a repository alongside binaries, transitive dependencies, etc&#8230;. it all falls into place, and people realize that this simple thing they’ve grown accustomed to is only easy because of a ten year effort to refine the model, the creation of a support structure for source forges at places like Oracle and Google, and a constant investment in infrastructure.</p>

<p><center>
<iframe width="640" height="360" src="http://www.youtube.com/embed/4ixkpScdpRw?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe>
</center></p>

<p>On the one hand, it’s a great success that Central is, for the most part, an invisible utility that supports developers.  On the other hand, it’s the kind of thing that people can start to take for granted very easily.</p>

<p>For example, a few months ago I spoke to someone who worked in an environment disconnected from the internet for security reasons.   This individual was talking about how limiting it was to have to download JARs from open source projects manually and assemble them in a project.   His words were: “It’s like programming Java in 2001 again.”</p>

<h2>How can you help?</h2>

<p>Imagine millions of developer spread all over the world: different time zones, different applications, but they all hit the same service: Central.    Some regions have more developers than others so we certainly see peaks in usage throughout the day, but in general, Central’s serving thousands of files throughout the world at any given time during the day.</p>

<p>Maybe someone just installed Maven for the first time, or maybe they blew away a local repository, with numbers like these we see a world that has a constant appetite for artifacts.   It isn’t a problem for Central, and I’m not writing this because Central is falling down on the job. Central can handle it, but it certainly isn’t the most efficient way to support millions developers.  It isn’t a good use of network bandwidth, and it isn’t a good use of energy to constantly cart around the same static JARs over and over and over again when the solution is so easy.</p>

<p>If everyone who used a build tool that interacted with Central adopted a repository manager such as Nexus we’d have a faster, more responsive system.   Central’s maintainers would be focused less on addressing the occasional runaway build and could spend more time and resource on increasing availability and functionality of this essential service.</p>

<h2>Broken Builds</h2>

<p>The other factor playing into this is that Maven builds only download releases once.   It isn’t like these build tools are repeatedly returning to Central to download release artifacts over and over again.</p>

<p>Well&#8230; actually&#8230; that isn’t true, we’ve seen some installations of Hudson configured to delete a local repository before every build placing a high load on Central.   Imagine a build that downloads 50 MB of dependencies running once every 5 minutes.  That’s one build consuming ~14 GB a day never mind the time wasted downloading static artifacts.
While these broken builds are the exception, they do still show up from time to time.  Central can handle the load, but imagine 1000 of these broken builds running continuously and you can see the challenge.</p>

<h2>A Simple Reminder: Please Proxy Central</h2>

<p>We’re constantly watching the performance of the system and making sure it stays up and running for an entire world of developers.  If you use a build tool that hits Central whether it is Buildr or Maven or Gradle or Ivy, you can help us by running a Nexus instance.</p>

<p>Even if all of your builds work perfect, running a local Nexus instance helps preserve Central as a public, free resource and it will lead to faster, more responsive builds.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2012/01/a-simple-reminder-for-mavengradleivy-users-proxy-central/&via=SonatypeCM&text=A Simple Reminder for Maven/Gradle/Ivy Users: Proxy Central&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2012/01/a-simple-reminder-for-mavengradleivy-users-proxy-central/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sizing Nexus: How much space do you need?</title>
		<link>http://www.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/</link>
		<comments>http://www.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 12:53:49 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[Nexus OSS]]></category>
		<category><![CDATA[nexus pro]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9856</guid>
		<description><![CDATA[You’ll want to make sure that you run your repository manager on a server that is up to the task. The last thing you need is for Nexus to run out of space during a critical release because it is running on inadequate hardware. Disk space is cheap, broken builds are not. In this post, [...]]]></description>
			<content:encoded><![CDATA[<p>You’ll want to make sure that you run your repository manager on a server that is up to the task.  The last thing you need is for Nexus to run out of space during a critical release because it is running on inadequate hardware.   <strong>Disk space is cheap, broken builds are not.</strong></p>

<p>In this post, I focus on storage requirements for Nexus.  I discuss general recommendations and point you at resources we’ve developed to help you come up with accurate estimates for how much disk space you’ll need.</p>

<p>&nbsp;
<iframe width="640" height="360" src="http://www.youtube.com/embed/0oqZoXgkwAg?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe>
&nbsp;</p>

<h3>Disk Space</h3>

<p>Disk space is going to be the critical parameter for a Nexus installation.   At its core, Nexus is simply a collection of files and a set of services to index and serve these files.   If you integrate Nexus into your development process and come to depend on it as a collaboration mechanism, you can easily consume hundreds of gigabytes (or even terabytes) of space.</p>

<p>Coming up with a simple guideline for storage requirements is difficult as it depends on a number of factors: How many projects do you have? How large are the artifacts being deployed to Nexus? How frequently are these artifacts deployed? and How long do you keep your releases?    How much open source are you consuming from Central?   How often do you update external dependencies? and How many 3rd party artifacts do you need to upload?</p>

<p>If you deploy artifacts to Nexus, your internal, hosted repositories are what will end up consuming the most space over time.   At a large organization with hundreds of projects and frequent releases, it is very easy to create systems that consume a surprising amount of space.   If you are interested in diving into the details and coming up with an estimate for your organization, watch <a href="http://www.youtube.com/watch?v=0oqZoXgkwAg&amp;hd=1">“Getting Scientific about Sizing Nexus”</a>.</p>

<h3>An Initial Starting Point</h3>

<p>While some of our engineers like to aim high with an initial recommendation of 250-500 GB, I like to aim a little lower.   Sure, if you are rolling Nexus out to a 5,000 developer installation with thousands of projects, you may very well want to start with 1 TB.    On the other hand, if you are gradually rolling Nexus out to a department or two, you should start with a more reasonable number: 50 or 100 GB.</p>

<p>I recommend starting with 50 or 100 GB, and I also recommend being prepared to expand that number as needed.   Starting with this smaller number avoids the problem of procuring a huge chunk of disk space only to watch it sit idle for the months (or years) it will take you to consume all this space.    <strong>Aim low, plan to expand.</strong></p>

<h3>Conclusion</h3>

<p>Your initial estimate for disk space consumption is going to be just that, an estimate.   Having set up scores of Nexus instances for organizations of all sizes, my experience has been that you’ll want to do some ballpark estimates and then multiply that estimate by a factor of two or three.   When you connect systems like Hudson to Nexus and deploy snapshots from every integration build, you’ll appreciate the extra space.</p>

<p>As you start to use Nexus, you’ll have to tweak your scheduled jobs to make sure that you are periodically removing old snapshots and regularly keeping an eye on storage.   If you expand the number of projects or developers using a Nexus instance, you’ll want to revisit some of these initial estimates and make sure that your system has enough storage to keep track of all the artifacts it is caching and storing.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/&via=SonatypeCM&text=Sizing Nexus: How much space do you need?&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2012/01/sizing-nexus-how-much-space-do-you-need/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Releases Are Forever?</title>
		<link>http://www.sonatype.com/people/2012/01/releases-are-forever/</link>
		<comments>http://www.sonatype.com/people/2012/01/releases-are-forever/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 23:14:50 +0000</pubDate>
		<dc:creator>Tim O'Brien</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[repository management]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9838</guid>
		<description><![CDATA[Releases are forever, right? Once you&#8217;ve pushed an artifact to a hosted release repository it is etched in stone, and changing it is a bad practice. That&#8217;s what we&#8217;ve been saying since we launched Nexus, but there are situations that call for old releases to be deleted. In fact, there are situations that require the [...]]]></description>
			<content:encoded><![CDATA[<p>Releases are forever, right?   Once you&#8217;ve pushed an artifact to a hosted release repository it is etched in stone, and changing it is a bad practice.   That&#8217;s what we&#8217;ve been saying since we launched Nexus, but there are situations that call for old releases to be deleted.     In fact, there are situations that require the deletion of old releases?   Otherwise, you&#8217;d be paying for terabytes of useless data storage.  <span id="more-9838"></span></p>

<h2>Sometimes Releases are Disposable</h2>

<p>For example, consider a company that creates a large web-based system.   They may deploy new versions of components to production multiple times a day.   If this seems unrealistic, know that system administrators for popular services like Facebook, Last.fm, and Flickr have talked openly about how frequently code is pushed to production systems.   A few times a day isn&#8217;t odd in some of these environments, and with a large system, you&#8217;d consume terabytes of space to keep all of those old releases around.</p>

<p>Last time I worked at a large consumer-focused web site, pushing something to production once a day wasn&#8217;t uncommon, and even the idea of rolling back to anything other than yesterday&#8217;s build was laughably impractical.   If you identified a bug in a CMS or a production database, you&#8217;d just craft the fix it and move on.    This is especially true of larger, web-facing systems in which the only reality is the code that is running in production today. A site like Flickr gains nothing from being able to roll back to a release from last September.</p>

<h2>The Other Side of the Coin: Releases are Forever</h2>

<p>Compare this to the production release schedule of a critical, supported product and it&#8217;s like night and day.    If you are coding some serious banking system you might be lucky to have a release once a month.  In all likelihood you might be looking at a quarterly release.  When you are working on critical applications, ship software, or have infrequent release cycles then the ability to roll back to previously released binaries is very important.     When you work somewhere fast-paced with a very short release cycle, there&#8217;s not much value in retaining older releases.</p>

<p>For this reason, we&#8217;re clarifying this point: if it makes sense for you to delete release artifacts from a hosted repository, go for it.   Just remember to re-index the server once you&#8217;ve manipulated the storage folder.</p>

<p>We put together the following video to share more of our thoughts on this topic.</p>

<p><iframe width="500" height="281" src="http://www.youtube.com/embed/E5uEQm40h5E?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2012/01/releases-are-forever/&via=SonatypeCM&text=Releases Are Forever?&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2012/01/releases-are-forever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webinar Replay Now Available: Nexus 2.0 Sneak Preview</title>
		<link>http://www.sonatype.com/people/2011/12/webinar-replay-now-available-nexus-2-0-sneak-preview/</link>
		<comments>http://www.sonatype.com/people/2011/12/webinar-replay-now-available-nexus-2-0-sneak-preview/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 02:48:20 +0000</pubDate>
		<dc:creator>Emily Blades</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[Webinar]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=9635</guid>
		<description><![CDATA[Thank you to everyone who made it to our Nexus 2.0 Sneak Preview webinar last week!  We had a fantastic turnout and received tremendous interest from our users in the features that are coming in Nexus Pro 2.0, including: Integrated security and licensing reports to discover problematic components Improved availability with our new Nexus Availability [...]]]></description>
			<content:encoded><![CDATA[<p>Thank you to everyone who made it to our Nexus 2.0 Sneak Preview webinar last week!  We had a fantastic turnout and received tremendous interest from our users in the features that are coming in Nexus Pro 2.0, including:</p>

<ul>
    <li> Integrated security and licensing reports to discover problematic components</li>
    <li> Improved availability with our new Nexus Availability Architecture</li>
    <li> Ability to manage both Java and .NET components from a single repository</li>
</ul>

<h4><a href="http://sonatype.com/Request/Webinar/Nexus-2.0-Sneak-Preview?nexus2webinar=Blog&amp;utm_source=Blog&amp;utm_medium=Post&amp;utm_campaign=Nexus2.0Webinar" target="_blank">The webinar recording is now available here.</a></h4>

<p>Special pre-release pricing is available for Nexus Pro 2.0. Check out the webinar or <a href="http://www.sonatype.com/nexuspro2.0" target="_blank">contact a representative</a> for more information.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2011/12/webinar-replay-now-available-nexus-2-0-sneak-preview/&via=SonatypeCM&text=Webinar Replay Now Available: Nexus 2.0 Sneak Preview&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2011/12/webinar-replay-now-available-nexus-2-0-sneak-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bringing Java and Linux together on the way to Continuous Live Deployment</title>
		<link>http://www.sonatype.com/people/2011/11/bringing-java-and-linux-together-on-the-way-to-continuous-live-deployment/</link>
		<comments>http://www.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>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2011/11/bringing-java-and-linux-together-on-the-way-to-continuous-live-deployment/&via=SonatypeCM&text=Bringing Java and Linux together on the way to Continuous Live Deployment&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.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>
		<item>
		<title>Nexus Gets a Stop Button</title>
		<link>http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/</link>
		<comments>http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 10:00:43 +0000</pubDate>
		<dc:creator>Terry Bernstein</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonatype]]></category>
		<category><![CDATA[nexus pro]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=8848</guid>
		<description><![CDATA[We&#8217;ve enhanced the leading repository manager to help you develop better software faster.  Nexus 1.9.2, recently released, adds a number of new features. Stop Running Tasks You can stop running processes immediately and no longer have to wait for them to complete.  This is quite useful for recovering from high load situations.  Stopping a running [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve enhanced the leading repository manager to help you develop better software faster.  Nexus 1.9.2, recently released, adds a number of new features.</p>

<p><strong>Stop Running Tasks</strong></p>

<p><strong> </strong>You can stop running processes immediately and no longer have to wait for them to complete.  This is quite useful for recovering from high load situations.  Stopping a running process is easy &#8212; just select the process and click on the cancel button (see Figure 1). You can also delete tasks without waiting for them to finish. Delete will automatically stop the process and then delete it.</p>

<p><strong>Improved Maven 2 Support</strong></p>

<p>You&#8217;ll get improved support for environments with both Maven 2 and Maven 3 clients. Nexus now suppresses Maven 3 metadata automatically when communicating with Maven 2 clients. This improvement allows you to use such mixed environments successfully.</p>

<p><strong>Enhanced User Information</strong></p>

<p>Sonatype Pro for Nexus customers can better audit who uses each Nexus server with usage information that includes userid and user agent.</p>

<p><strong>Download Nexus Today</strong></p>

<p>So what are you waiting for, <a href="http://nexus.sonatype.org/download-nexus.html">download</a> the latest version of Nexus OSS  or the professional version from our support site.  Learn more about <a href="http://www.sonatype.com/Products/Sonatype-Pro-for-Nexus">Sonatype Pro for Nexus.</a></p>

<p style="text-align: center;">&nbsp;</p>

<div id="attachment_8849" class="wp-caption aligncenter" style="width: 647px"><a rel="attachment wp-att-8849" href="http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/nexus-stop-button-png/"><img class="size-full wp-image-8849 " title="Nexus Stop Button" src="http://www.sonatype.com/people/wp-content/uploads/2011/08/Nexus-Stop-button.png.png" alt="Nexus Stop Button" width="637" height="186" /></a><p class="wp-caption-text">Figure 1.  Stop running processes easily with the new cancel button</p></div>

<p style="text-align: center;">&nbsp;</p>

<p style="text-align: center;">&nbsp;</p>

<div><dl id="attachment_8849"></dl></div>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/&via=SonatypeCM&text=Nexus Gets a Stop Button&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2011/08/nexus-gets-a-stop-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: Nexus Basics in 110 Seconds</title>
		<link>http://www.sonatype.com/people/2011/06/video-nexus-basics-in-110-seconds/</link>
		<comments>http://www.sonatype.com/people/2011/06/video-nexus-basics-in-110-seconds/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 13:00:15 +0000</pubDate>
		<dc:creator>hloney</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Maven Central]]></category>
		<category><![CDATA[repository manager]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=8409</guid>
		<description><![CDATA[If your build relies on Maven Central, and you&#8217;re not using a repository manager, you are wasting valuable time and bandwidth by continually downloading the same artifacts, over and over again. But the good news is, with a Nexus repository manager you don&#8217;t need to worry about this ever again. This video gives a quick [...]]]></description>
			<content:encoded><![CDATA[<p>If your build relies on Maven Central, and you&#8217;re not using a repository manager, you are wasting valuable time and bandwidth by continually downloading the same artifacts, over and over again.</p>

<p>But the good news is, with a Nexus repository manager you don&#8217;t need to worry about this ever again.</p>

<p>This video gives a quick overview of the benefits of using a Nexus to  proxy Maven Central. It also goes over how to store third party libraries, and host artifacts.</p>

<p><strong>Watch the video below:</strong></p>

<p><object width="600" height="371"><param name="movie" value="http://www.youtube.com/v/crXRA1PN8nI?version=3&amp;hl=en_US&amp;rel=0" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed type="application/x-shockwave-flash" width="600" height="371" src="http://www.youtube.com/v/crXRA1PN8nI?version=3&amp;hl=en_US&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2011/06/video-nexus-basics-in-110-seconds/&via=SonatypeCM&text=Video: Nexus Basics in 110 Seconds&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2011/06/video-nexus-basics-in-110-seconds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus Tips and Tricks: Backup Nexus</title>
		<link>http://www.sonatype.com/people/2011/06/nexus-tips-and-tricks-backup-nexus/</link>
		<comments>http://www.sonatype.com/people/2011/06/nexus-tips-and-tricks-backup-nexus/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 13:00:03 +0000</pubDate>
		<dc:creator>Juven Xu</dc:creator>
				<category><![CDATA[Nexus]]></category>
		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://www.sonatype.com/people/?p=3623</guid>
		<description><![CDATA[Sonatype is looking through the archives and re-posting popular articles for those new to Sonatype tools. The first blog in the series is by Sonatype software developer Juven Xu, on backing up Nexus. Nexus is the industry leading repository manager that helps reduce build times and increase your control of open source artifacts by  managing [...]]]></description>
			<content:encoded><![CDATA[<p><em>Sonatype is looking through the archives and re-posting popular articles for those new to Sonatype tools.</em></p>

<p><em>The first blog in the series is by Sonatype software developer Juven Xu, on backing up Nexus.</em></p>

<p><em>Nexus is the industry leading repository manager that helps reduce build times and increase your control of open source artifacts by  managing software artifacts required for development,  deployment, and provisioning. Nexus greatly simplifies the maintenance of your own internal  repositories and access to external repositories such as Maven Central.  With Nexus you can  completely control access to, and deployment of, every artifact in your  organization from a single location.</em></p>

<p><em>If you are already using Nexus, this article will teach you how to back up your repository manager (if you don&#8217;t use Nexus, you can click <a href="http://sonatype.com/Products/Sonatype-Pro-for-Nexus"><strong>here</strong></a> for more information).</em></p>

<h4>Why Backup</h4>

<p>To backup Nexus simply means to make a copy of your Nexus files for safekeeping. The copy should be stored on different hardware, other than the original one. For example, you might want to copy your Nexus settings in the <em>sonatype-work/nexus/config </em>folder to a removable hard disk.</p>

<p>It is important to backup your Nexus files because sometimes things fail. Hard disk might crash, files might be deleted by other programs, even ourselves might delete important files by mistake. With a backup, you will be protected from these frustrating events.</p>

<p><span id="more-3623"></span></p>

<h4>What To Backup</h4>

<p>Nexus consists of two parts, one part is the runtime web application, which can always be downloaded from Sonatype site, the other part is the <em>sonatype-work/</em> folder, which contains all the user data and configuration. So here our focus is the <em>sonatype-work/</em> folder. If you are running the Nexus bundle, this folder is next to the nexus-webapp directory. If you are using Nexus war, this folder should be under the user home directory by default.</p>

<p>You can simply backup the whole <em>sonatype-work/</em> directory if you are rich in disk space, but it&#8217;s not necessary. Some of the files in the directory are very important, or even unreproduceable, while some of the files can be easily regenerated. Here is a full list of sub-folders, from the most important to least:</p>

<ol>
    <li><strong>nexus/storage (hosted repositories)</strong> &#8212; When you are using Nexus, you deploy lots of internal artifacts, which can&#8217;t be retrieved from public repositories, into these hosted repositories. Each repository has a corresponding folder in this directory. For example, hosted repository with id &#8216;release&#8217; has a folder &#8216;nexus/storage/release&#8217;. Because the artifacts stored in hosted repositories are not likely hosted in any public repositories, we <em>must</em> backup them.</li>
    <li><strong>nexus/conf</strong> &#8212;  All the nexus configuration files are stored here, such as repository configuration, security configuration, and log configuration. Although you can recreate them in theory, it would be a pain to lose them &#8212; it takes time to recreate them, so, back up this folder.</li>
    <li><strong>nexus/logs</strong> &#8212;  All the nexus log are stored here, you might want to backup them to make sure you know the history.</li>
    <li><strong>nexus/timeline</strong> &#8212; Most of the important events like authentication failure, scheduled task starting, and recently deployed artifacts, are recorded and showed via RSS feeds. These events are internally stored in this folder. You can backup them for potential backtrace.</li>
    <li><strong>nexus/storage (proxy repositories)</strong> &#8212;  Once you&#8217;ve been using Nexus for a long time, huge amount of artifacts are cached from public repositories like Maven Central. The speed of your Maven builds benefits from these cached artifacts. Since these artifacts can be retrieved from public repositories at any time, there&#8217;s no need to backup them. But, if you have adequate disk space, you can still consider backup them, since this can save a lot of time for retrieving them again.</li>
    <li><strong>nexus/trash</strong> &#8212; Should you backup trash? Most of time these no need to do this. When artifacts are deleted in Nexus, they are actually moved to the trash, you can choose to backup them if you think you are likely to do stupid things very often. <img src='http://www.sonatype.com/people/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
    <li><strong>nexus/indexer</strong> &#8212; Nexus indices are store in this folder, since Nexus can rebuild indices using the reindex task, there is no need to backup this folder.</li>
    <li><strong>nexus/proxy</strong> &#8212; Artifacts&#8217; attributes like repository path, is readable, and last requested time are stored in this folder. Nexus can rebuild these attributes as well, so there is no need to backup them.</li>
</ol>

<h4>How To Backup</h4>

<p>Now that you know what files to backup according to your situation, you need to know how to backup your files.</p>

<p>Take this example:</p>

<p>My Nexus is running on Ubuntu Linux, the path of sonatype-work directory is <em>/home/juven/bin/sonatype-work/</em>, I have a removable disk which is mounted at <em>/media/disk/</em>, I am using rsync to make backup:</p>

<blockquote>$ rsync -a -delete -v ~/bin/sonatype-work /media/disk/</blockquote>

<p>This command is equivalent to:</p>

<blockquote>$ cp -a ~/bin/sonatype-work /media/disk/</blockquote>

<p>except that it&#8217;s more efficient if there are only a few differences.</p>

<ul>
    <li>The -a option tells rsync to run in archive mode, which means to run recursively, keep file mode, ownership, and keep symbolic link etc.</li>
    <li>The -delete option tells rsync to delete files in the target directory if they were deleted in the source directory.</li>
    <li>The -v option tells rsync to show verbose log.</li>
</ul>

<p>So this command will backup the whole sonatype-work folder, what if I only want to backup some important the sub-folders?</p>

<p>Suppose I only want to backup these folders: /sonatype-work/nexus/storage/releases/, /sonatype-work/nexus/storage/thirdparty/, /sonatype-work/nexus/conf/, /sonatype-work/nexus/storage/logs/, and /sonatype-work/nexus/storage/timeline/, create a rsync includes list file like this:</p>

<blockquote>+ /sonatype-work/nexus/storage/
+ /sonatype-work/nexus/storage/releases/
+ /sonatype-work/nexus/storage/thirdparty/
+ /sonatype-work/nexus/conf/
+ /sonatype-work/nexus/logs/
+ /sonatype-work/nexus/timeline/
- /sonatype-work/nexus/storage/*
- /sonatype-work/nexus/*</blockquote>

<div>This tells rsync to only include what we want, and exclude anything else, now run rsync again with the includes list:</div>

<div>
<blockquote>
<div>$ rsync -a -delete -v &#8211;include-from includes.list  ~/bin/sonatype-work /media/disk/</div></blockquote>
</div>

<h4>Automate The Backup</h4>

<p>If your backup disk is always connected to your machine and you don&#8217; t want to repeat the backup command manually, then schedule a task running the backup periodically.</p>

<p>On Linux, <em>cron</em> is a perfect tool for automating the backup task. In my case on Linux, with user name &#8216;juven&#8217;, edit file <em>/etc/crontab</em>, add a line like this:</p>

<blockquote>0 0 * * 0 juven rsync -a -delete &#8211;include-from ~/bin/includes.list ~/bin/sonatype-work /media/disk/</blockquote>

<p>This entry tells cron to run the rsync command as user juven, weekly.</p>

<p>And don&#8217;t forget to restart the cron deamon:</p>

<blockquote>$ sudo /etc/init.d/cron restart</blockquote>

<p>And that&#8217;s it! It should automatically perform the backup at the time you specified.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.sonatype.com/people/2011/06/nexus-tips-and-tricks-backup-nexus/&via=SonatypeCM&text=Nexus Tips and Tricks: Backup Nexus&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.sonatype.com/people/2011/06/nexus-tips-and-tricks-backup-nexus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

