tags:

views:

3960

answers:

14

We are using Maven for a large build process (> 100 modules). We have been storing our external dependencies in source control, and using that to update a local repo.

However, we are ready to graduate to a local repo that can cache central so that we don't have to proactively download all 3rd parties (but we can still have a local repo to pull from). In addition we want to publish our internal build artifacts from a nightly build so that developers don't have to build the world.

We are considering Nexus and Artifactory. What are the reasons for preferring one over the other? Are there others we should be considering?

+14  A: 

I don't know about Artifactory but here are my reasons for using Nexus:

  • Dead simple install (and since 1.2, dead simple upgrade, too)
  • Very good web UI
  • Easy to maintain, almost no administrative overhead
  • Provides you with RSS feeds of recently installed, broken artifacts and errors
  • It can group several repositories so you can mirror several sources but need only one or two entries in your settings.xml
  • Deploying from Maven works out of the box (no need for WebDAV hacks, etc).
  • it's free
  • You can redirect access paths (i.e. some broken pom.xml requires "a.b.c" from "xxx"). Instead of patching the POM, you can fix the bug in Nexus and redirect the request to the place where the artifact really is.
Aaron Digulla
+11  A: 

Artifactory stores the artifacts in a database, which means that if something goes wrong, all your artifacts are gone. Nexus uses a flat file for your precious artifacts so you don't have to worry about them all getting lost.

Brian Fox
That was what made the difference for us too. I imagine it's mostly just paranoia, but it's comforting to know that it will be easy to inspect the system at any time.
Jeremy Huiskamp
We are planning to switch from Artifactory to Nexus because of this.
Kariem
+2  A: 

You should use Artifactory Its latest version was a real jump You can backup incrementally your repositories , which means you can have all your artifacts saved and maintain Its has a easy to use web ui and is really easy to set up i enjoyed it a lot check out its new version 2.0

+5  A: 

http://blogs.sonatype.com/people/2009/01/contrasting-nexus-and-artifactory/

Please see the response by Artifactory developers to this FUD article by Sonatype guys before jumping into conclusions based on the article! http://blogs.jfrog.org/2009/01/contrasting-artifactory-and-nexus.html
Kaitsu
scroll through the artifactory user archives and see for yourself.
Brian Fox
+5  A: 

Your link is not too objective, here's the other side response

http://blogs.jfrog.org/2009/01/contrasting-artifactory-and-nexus.html

+1  A: 

All politics/religion aside, licensing makes a difference for some organizations.

Nexus is GPL, Artifactory is Apache licensed LGPLv3 licensed as of version 2.1. Licensing differences between the two that may have been considered relevant in the past are lesser now (ha ha).

You may also want to consider Archiva, just for comparison's sake.

Zac Thompson
Why, this is a troll. Does the fact that Linux is GPL dissuade organizations from using it? There's a difference between incorporating a tool into a program and *using* it.
tobrien
I did not mean to troll, but I appreciate your point. I've removed the superlatives from the text.
Zac Thompson
@tobrien: FWIW, some organizations (including mine) are highly cautious about when they *use* GPL'ed software, fearing legal exposure. I don't want to discuss the (lack of) wisdom of such policy -- I suspect we would agree completely. Just pointing out that for some, it matters.
Zac Thompson
Yes, this is definitively something organizations (also including mine) consider.
Eelco
As of 2.1, Artifactory is LGPL anyway.
Brian Fox
Thanks Brian, I've updated the answer.
Zac Thompson
@Zac @user145026 Are you linking your code to Nexus libraries?? If not, I don't see why the GPL license is an issue.
Pascal Thivent
@Pascal you're right, of course ... but that doesn't stop companies from having policies!
Zac Thompson
A: 

Both Artifactory and Nexus have more or less similar feature set but Artifactory's LDAP support makes it more attractive over Nexus. Though Nexus also have LDAP support but in paid version :-(

Vinod Singh
There is an open source LDAP plugin for Nexus on google code.
Brian Fox
LDAP support is now in the free version of Nexus, since 1.5.0
David Roussel
+2  A: 

I made some research recenly about Artifactory 2 and Nexus 1.3. I'll list here the main differences I found:

  • Artifactory stores data in DB, Nexus writes directly to file system. There are pros. and cons. for each approach. DB supports transactions, while in FS stored files can be accessed directly.
  • Artifactory has higher system requirements especially for disk space.
  • Artifactory has LDAP support, while Nexus has it only in paid version. On the other hand free LDAP plugin for Nexus is available on Google code.

The most complete comparison: http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

Sergey
Actually Artifactory is now GPL.
Brian Fox
Nexus OSS has Ldap support for several releases now.
Brian Fox
+2  A: 

Artifactory supports both file-system and database storage backends. Storage is checksum based and identical binaries are stored only once, no matter how many times they appear in the repo, which makes Artifactory more efficient storage-wise. Move and copy are also very cheap because of this architecture (in Nexus there's no REST for move/copy - you have to move stuff on the file system, then run corrective actions on the repo to let it know content has changed).

Another important differentiator is Artifactory has unique integration with Hudson and TeamCity for capturing information about deployed artifacts, resolved dependencies and environment data associated with build runs, which provides full build traceability.

Yoav Landman
A: 

Deffinately choose Nexus. The database usage of Artifactory is awful and will constantly chew up disk space and get progressively slower.

Steven
+2  A: 

@Steven: What you are saying about Artifactory is not based on fact or is just showing your ignorance -

Our Artifactory server is serving hundreds of thousands of artifacts for a couple of years now, using MySQL as the backend, with no slowdowns or disk usage issues. I also find Artifactory to be much more feature-rich and more polished compared to Nexus.

Finally, I prefer a tool that is not so much Maven oriented and will support rising competing build technologies like Gradle, which we are evaluating at the moment.

Rob
+1  A: 

@Rob Firstly, I have used both nexus and artifactory extensively and these are proven facts.

You will kick yourself if you ever have to migrate servers for artifactory and have to migrate a database rather than just a directory structure.

Enjoy your constant re-indexing and database compressions.

Steven