views:

2090

answers:

7

Some of the other questions and answers here on SO extol the virtues of using an enterprise repository tool like Archiva, Artifactory, or Nexus. What are the pros and cons of each? How do I choose between them?

In case it helps:

  • We use both Maven 1 and Maven 2 (at least for a while)
  • We want to store both internally-generated artifacts, publicly-available ones (ibiblio, codehaus, etc.), and proprietary ones (e.g. Sun's licensed JARs like the Servlet API).
  • We would like something that runs on Windows, Linux, or both.
  • We use Luntbuild as our CI server (but intend moving to Hudson some time).

N.B. this question is not a duplicate of either this one or this one.

+2  A: 

I have used Archiva for over a year now and have been very happy with its reliability and performance.

Both Archiva and Artifactory are available as .war files so you can deploy them on an application server.

One advantage of Archiva over Artifactory is that it can share its user database with Continuum.

bmatthews68
+7  A: 

We had been using Archiva for a while, and were happy with it. We recently switched hardware, and decided to try out Nexus because we had read some good things about it. We didn't know what we were missing in Archiva, but Nexus is far better. The repository aspect is easier because it "groups" all the repositories into one url, for easier settings.xml configuration. Further, the web site rocks -- easy search for artifacts, and even searches the global central repo, without having downloaded it all to your proxy. I highly recommend Nexus!

Ben
+3  A: 

I have used Archiva for over a year and found it met all of the basic requirements, however, we were restricted to a Windows server and as such found a few limitations and had a large memory footprint.

The main reason we started looking for an alternative, however, was the painful process to upload artifacts to the repository that didn't exist in the Maven repositories on the web (such as some of the Sun or IBM jar files).

We made the switch to Nexus about two months ago and have been impressed very much by its clean interface, ease of use, and general non-invasiveness. Uploading new artifacts is a breeze, and we haven't had a single issue. We've been using Mule and CXF a bit, and so we've had to download from both legacy (Maven1) and standard (Maven2) repositories - these are straightforward to set up and require little (if any) administration.

The documentation is excellent with the free PDF on the Nexus site (also you can buy the hardcopy version if you like).

I've used it on both Windows (at work) and Linux (at home) without any problems.

lawsonj2019
+2  A: 

In our company we chose Maven 2 and Nexus..it's awesome :) (same case as yours)

vaske
+3  A: 

We used to use artifactory, but ended up switching to nexus a while back. The main problem was that the disk space used by artifactory kept growing, and we couldn't find a way to stop it. We're now very happy with nexus. It's a great UI, easy to configure in settings.xml, and easy to manage as a service.

Dominic Mitchell
+2  A: 

We switched from Archiva to Nexus since we get too many problems with it's SQL support. With MySQL we got DB corruption after a shutdown ;(

As soon as Nexus OSS was available as a simple war (so useable on our Tomcat farms), we used it and are very happy with it. Reliable and faster than Archiva.

hgomez
A: 

I guess I will throw a question here since you guys are all pretty good at Nexus. I installed it and was able to setup eclipse m2eclipse to work nice with Nexus. However, I don't see an easy way to install local artifacts to the Nexus server. When I click install, obviously, it installs it to the local repo.

Another thing that seems annoying about m2eclipse(I must be missing something, I am sure) when I enable dependency management on a java, or java web application, it does not recognize the source folders and so forth. Forgive me if I am writing in the wrong place and thanks for any ideas.

Kamal

Andrew Swan