Showing posts with label Nexus. Show all posts
Showing posts with label Nexus. Show all posts

Tuesday, October 14, 2008

Repeatable Maven Builds

A typical problem folks have with Maven seems to be getting repeatable builds. If you've encountered this, you know the pain: an older release needs to be built but now fails with the dreaded "Failed to resolve artifact" error. You can't really depend on most Maven repos to be there indefinitely. I'm sure repos like http://repo1.maven.org are pretty safe but AFAIK the maintainers are under no legal obligation to keep around the artifacts forever. You most likely DO have obligations to customers and thus need to ensure builds are repeatable.

You get repeatability for free when you use a repository manager like Nexus - it keeps downloaded artifacts around forever by default. If you don't want to use a repository manager, you're going to have to save those artifacts some other (manual) way. One approach would be to just tar up your local m2 repo after each release and store it somewhere safe (like in SVN). Of course, since local repos tend to get huge over time, you should always start from an empty local repo before a release.

Hope this helps.

Friday, September 19, 2008

Nexus indices added for FUSE

I've added Nexus repository indices for the FUSE Maven repositories. You can find instructions on how to add these to your m2eclipse installation here.

Why should you care? Well, among many other things, this enables you:

1. Create new projects based on Camel archetypes
2. Search for classes in all FUSE artifacts
3. Add FUSE dependencies to your project's POM

Tuesday, September 9, 2008

Nexus config for Apache Camel

Some folks have been having issues getting all the Maven repositories set up properly in Nexus for Apache Camel. Here's my working Nexus config and settings.xml - hope it helps!

Nexus config
(admittedly polluted with repos from other projects...)

settings.xml

I found my Nexus config in /opt/sonatype-work/nexus/conf. I'm not sure what happens when you copy in a new Nexus config file so you should probably make a copy of the sonatype-work directory first :)

Wednesday, August 27, 2008

Nexus == easy

I must admit, the Maven setup at work has me a bit spoiled. Direct LAN access to a bunch of Maven mirrors makes for some pretty fast builds. Problem is, when I go off site I have to suffer through slow builds again...

Thanks to Bruce I now have wicked fast builds off site too!! A local instance of Nexus is the answer. Seriously, go take a look at the steps Bruce posted. It took me like 30 minutes to setup and add about twenty mirrors - now thats freakin' easy.

Heres the best part (I'm building Apache Camel here with a clean local repo):

No mirroring
[INFO] Total time: 31 minutes 18 seconds

Custom internal mirrors
[INFO] Total time: 7 minutes 52 seconds

Nexus mirroring
[INFO] Total time: 3 minutes 3 seconds

Anyway, bottom line is that I'm impressed. Great work Maven guys!