Thursday, February 14, 2008

Maven 2 Remote Repositories - Part II

It appears that archiva doesn't work right out of the box - at least not for it's current version. After downloading and building the project it was still throwing configuration exceptions and wouldn't deploy. So I searched around jira and found a fix for the bug. After following the prescribed steps and creating my own basic archiva.xml in my .m2 directory it worked, at least the test did...

When I continued on to deploying the standalone version to my destination server there was another issue - a NamingException. Turns out someone checked in the plexus.xml config that duplicated a datasource. I just had to go to the conf/plexus.xml file and fix it... I crossed my fingers, closed my eyes, and ran the run.sh script...

It worked!

Now for configuration...

Follow the directions to set up your managed repositories and the repositories that they proxy. Pretty straightforward and works out of the box. The tricky part is setting up your settings.xml

It appears that at this time just setting up mirrors doesn't work unto itself. Mirroring works for any non-plugin repositories. However, for each plugin repository you will need to set up pluginRepository elements in a profile. This is clunky and will hopefully get worked out as the product matures.

The last tidbit that took me a while to figure out is this: Any connection to the managed archiva repository is expected to be secure - meaning it wants a userid and password. This was not abundantly clear in the documentation... You need to set up a server entry in your settings.xml for each mirror / pluginRepository that you you plan on proxying. The userid and password are those that are defined in archiva. I simply defined a maven-user user with no password and assigned to it the role of Repository Observer.

Once you have these set up you are good to go!

No comments: