Artifactory - a new Maven 2 Repository Manager for Enterprises
From the Maven 2 user list:
We would like to announce the immediate availability of Artifactory, a Maven 2 enterprise proxy.
Artifactory offers advanced proxying, caching and security facilities to answer the needs of a robust, reproducible and independent build environment using Maven 2.
It uses a JSR-170 Java Content Repository (JCR) for storage, which makes it extremely easy to manage searchable metadata, and provide extended features such as security, transacted operations, auditing, locking, etc.
Artifactory is distributed under APLv2 at http://artifactory.sourceforge.net. It is currently available as a downloadable archive, that can be run out of the box (with default settings). An install script to run it as a Linux service is also provided. A (limited) guest live demo is available at http://www.jfrog.org/artifactory (username/password is guest/guest).
You are welcome to give it a go!
Cheers,
Yoav Landman,
The Artifactory Team
So how does this compare to Archiva, Proximity and Maven Proxy? One user writes (formatted for better reading):
- Archiva: Alpha; doesn't work (random webdav deployment failures), loads of bugs, low rate of progress. Feels dead.
- Proximity: Works; slightly confusing (don't like the separation of metadata); lots of new releases constantly; hard to configure (hacking around with spring config files) - our install takes *forever* to restart.
- m2proxy: simple, but simple.
It's interesting to see that Artifactory's UI is powered by Wicket and Dojo. The demo seems kind of sluggish, but I don't believe this application is meant to handle more than 10 users at a time. For more information on Artifactory's features, see its introduction page.
It's great to see a (seemingly) good tool come out for internal repository management.
I spent a couple days last week analyzing the best open source continuous integration server for Maven 2 projects. Hudson turned out to be the clear winner with the best UI and easiest setup. It also actually worked, which is a lot more than I can say for Continuum. While I did get Continuum to work, it required turning on anonymous SVN (no, putting the username/password in the URL did not work). CruiseControl worked as well, but required config.xml knowledge, which sometimes scares admins. Pulse and Bamboo continue to be the best commercial Maven 2 testers, while TeamCity failed my 10-minute test (twice!). One of the features I was looking for was Trac integration and that only exists for CruiseControl and Continuum.
It's amazing to see projects like Continuum and Archiva. If they're any reflection of the Maven team's ability to develop software, that's frightening. My advice: discontinue both of these projects as they're a waste of anyone's time to even research them.
Update October 2009: Fast forward a couple years and I take back what I said about the Maven's team ability to develop good software. Nexus is a kick-ass Repository Manager.
Posted by Jesse Kuhnert on March 05, 2007 at 03:37 PM MST #
Posted by Matt Raible on March 05, 2007 at 03:40 PM MST #
1) have to touch a few config files to add a mirror.
a) copy, paste and change in the proximityRepositories.xml for the new mirror.
b) add a list item in the applicationContext.xml so that proximity knows about the new mirror or repository.
c) add metadata dir and storage dir to proximity.properties
2) Upgrade to the current release candidate.
the documentation could be better. Whenever I get a new release candidate, I end up diffing the entire dir struct and going through a merge process (thank God for beyond compare).
I'll check out Archiva today to see how it compares. I fear that db storage for the artifacts will slow it down considerably. Proximity stores everything on the file system so nothing needs to be pulled out of any db before it's given to the requester.
Posted by rick marry on March 05, 2007 at 04:28 PM MST #
Posted by Eelco Hillenius on March 05, 2007 at 04:29 PM MST #
Posted by Jesse Kuhnert on March 05, 2007 at 05:13 PM MST #
Posted by JR on March 05, 2007 at 05:42 PM MST #
Posted by Eelco Hillenius on March 05, 2007 at 06:05 PM MST #
Posted by Nick Johnson on March 05, 2007 at 06:11 PM MST #
Posted by Anonymous Coward on March 05, 2007 at 06:13 PM MST #
Posted by Jesse Kuhnert on March 05, 2007 at 06:15 PM MST #
Posted by Anonymous Coward on March 05, 2007 at 06:20 PM MST #
Posted by Matt Raible on March 05, 2007 at 06:33 PM MST #
If you try any of the repository front ends against an ibiblio copy you'll see that it's not a trivial task.
Posted by Carlos Sanchez on March 05, 2007 at 10:02 PM MST #
Posted by Dave Brown on March 05, 2007 at 10:18 PM MST #
Posted by Sebastien Pouillet on March 07, 2007 at 06:20 AM MST #
"It's amazing to see projects like Continuum and Archiva. If they're any reflection of the Maven team's ability to develop software, that's frightening. My advice: discontinue both of these projects as they're a waste of anyone's time to even research them."
I second this sentiment. Lot's of this mess has to do with the fact that the Maven team seems to be stuck on a set of isolated technologies. *Everything* is plexus, and I'm sorry but basing something like Continuum on this arcane server platform born of Turbine is a mistake.
Archiva is also something of a disaster. Actually, err, Maven is something of a disaster.
Posted by Tim O'Brien on March 09, 2007 at 06:39 PM MST #
Posted by Tim O'Brien on March 09, 2007 at 06:41 PM MST #
Sounds like a formula for disaster to me. Certainly not the kind of stuff that would make a good mix for web development.
p.s. What is it that you do exactly, other than occasionally write boring articles for oreilly?
Posted by Jesse Kuhnert on March 11, 2007 at 05:15 AM MDT #
Posted by Ben Hood on March 15, 2007 at 04:31 PM MDT #
Posted by Fred Simon on March 16, 2007 at 06:29 PM MDT #
Posted by Justin Lee on June 28, 2007 at 03:46 PM MDT #
Posted by Harshad on July 25, 2007 at 04:44 PM MDT #
Merit to Thoughtworks to create such a great tool. All I need to dio is just running the create_project script and It will automatically create the subversion standard layout for me as well as updating the config.xml in cruisecontrol. After create the blank project, I use the maven2 plugin and create a maven project in eclipse, finally, all I need to do is checkin my project into the Trunk........ Damn Simple.
Of course, everytime I checkin my codes, cruisecontrol will be trigger (build, junit tests,etc). If it builds successfully, it will upload the jar file to artifactory automatically.
Let me know if anyone is interested in more details, I can blog it ..
Posted by Nathan Ma on August 30, 2007 at 09:18 AM MDT #
Matt,
If it's not too much trouble or too "out of scope" at the moment, I'd like to hear if your opinions on Continuum and Archiva have changed since the time of writing this entry?
I am using Continuum and it works just fine for me. If I'm not completely mistaken, I'm giving it a username and password for SVN and it seems to work.
Regarding Archiva, I really want it to work, but after playing with it for a couple of hours, it seems a bit too random to me. Artifacts show up in the "browse" page randomly, which to me indicates that if they are not there, they are not being proxied at all, even if I mirror "*" in my settings.xml.
Anyway, if there's an update to your post, I'd love to hear it!
Cheers!
Posted by Viktor Nordling on March 04, 2008 at 09:24 AM MST #