Archive for the ‘Maven’ Category.

Archiva…

A quick post on Maven Archiva (former Maven Repository Manager):

  • It seems to be included in the latest Maestro release offered by Mergere. (I didn’t try it out).
  • All of a sudden yesterday, my running archiva application popped a lots of outofmemory errors. So I checked out the latest sources, and tried to build the latest version. Unfortunatly I can’t make it to work. I have still to try it on a clean machine to check if it’s the environnement or the current state of the sources.

Maven Archiva (2/2)

Maven Archiva can play the role of proxy for all public maven repositories and your company own repositories, all through one host.
This feature bring many advantages :

  • This cut down each developer specific maven settings to hold only one repository.
  • You don’t suffer much of a slow repository for artifacts you already have, while building projects.
  • Enabling snapshots dependencies can be made for the whole team, without having to update all settings.xml on each developer workstation.

For instance, before maven Archiva my configuration in ~/.m2/settings.xml was :

     <profile>      <id>maven-repo</id>      <repositories>        <repository>          <id>central</id>          <name>default outbound repository</name>          <url>http://repo1.maven.org/maven2</url>        </repository>        <repository>          <id>CodeHaus</id>          <name>CodeHaus SnapShots</name>          <url>http://snapshots.maven.codehaus.org/maven2</url>        </repository>        <repository>          <id>ibiblio</id>          <name>ibiblio public repository</name>          <url>http://ibiblio.org/maven2</url>        </repository>      </repositories>      <pluginRepositories>        <pluginRepository>          <id>CodeHaus</id>          <name>CodeHaus</name>          <url>http://snapshots.maven.codehaus.org/maven2</url>        </pluginRepository>      </pluginRepositories>     </profile> 

now :

     <profile>      <id>archiva</id>      <repositories>        <repository>          <id>archiva</id>          <name>Archiva</name>          <url>http://tux6.vidal.net/archiva</url>        </repository>      </repositories>      <pluginRepositories>        <pluginRepository>          <id>archiva-plugin</id>          <name>Archiva</name>          <url>http://tux6.vidal.net/archiva</url>        </pluginRepository>      </pluginRepositories>     </profile> 

Thanks to Maven Archiva configuration :

Reminder : I build daily maven archiva, it seems to be still in development and no release are out.
You have to build it manually and put the web app built in your favorite j2ee container.

Maven Archiva (1/2)

I’ve decided to give a go to Maven Archiva, which former name was Maven Repository Manager.
I’ve already spoke about Maven Archiva here (slides in pdf format).

The killer feature of Maven Archiva is to act as the only repository for all the external one, like a proxy.
I usually have at least 3 Maven repositories in my configuration, central repository (ibiblio or mergere), codehaus repository (to get the latest plugins) and the company repository, where I store the company build software.
Sometimes I have to configure a third one, for instance when you use XFire, you add XFire repository.
If one of these external repository is slow or down, you are affected, and your build take ages.
Now with Maven archiva you put itself as the sole repository and configure it so if it can’t find a jar you’re looking for it will get it from other repositories.
Configuration is down to the minimum, performance are top notch since you’re going to query your internal repository for everything except for new artifacts…

Well that’s the key benefits I think, but Archiva is more than that, there is a little tool, which will make any IBM product user happy : A jar identificator !
Just put a jar into Maven Archiva web interface (as seen below)….

… and it will tell you the exact version ( as seen below ).
In this example we now know the xml-apis.jar version…

Pretty handy !

Maven archiva as a lot more features, and is still in development (the version I used was compiled directly from sources, no release are available AFAIK).

More Links:

Meeting with Jason Van Zyl

Jason Van Zyl, creator of Maven and founder of Mergere was invited to the latest OSSGTP meeting in Paris, and I was lucky enough to be available at this date.

He made 3 presentations, which were also presented on july 11th at the Maven day (which I couldn’t attend), the presentations were :

1 – Maven Repository Manager (MRM)

This tool is basically a web interface on top of a Maven repository. You can quickly search for a specific jar, whitout having to remember the whole directory structure (I’ve heard this questions a lot recently).
You can also compare jars you have in an application without having his version number through a md5 (or sha1) search. This works by computing the md5 key of the jar you’re looking a version for and comparing it with an index maintained by MRM of all md5 of all artifacts in the repository. This is definetly usefull whenever you stumble on a project full of jar without version number.
It also acts as a proxy, thus helping not to have tons of repositories in our configuration, and also not to suffer too much when ibiblio.org or whatever repository mirror you’re using is down.
MRM is targeted for a end of july release.

MRM slides (pdf)

2 – Maven.org

Maven.org is a sourceforge-like full featured software building and communication platform, including, Maven Repository manager, Subversion, Continuum, a wiki, a bugtracker, an Irc server and much more…. How all this components will work together I don’t know, check the slides or while you wait for them to be available the current Maven 2.1 design document.
Maven.org aims to be a product heading directly in competition with sourceforge or codebeamer.

maven.org (feynman) slides (pdf)

3 – Upcoming feature of Maven 2.1

Main features I picked up are that we are going to be able to use annotations in Maven Plugins (trough QDox, thus retaining jdk 1.4 compatibility), and the dependency resolver will be able to be exchanged or enhanced somehow to allow to compute dependencies differently. This is especially usefull for osgi application (read building Eclipse RCP application with Maven). There were much more, take a look a the slides.

As every OSSGTP meeting, we went to a bar, to continue exchanging on various topics. I had a chance to discuss with Jason a bit more especially on Mergere, which is a company who seems to run like any open source project (most employees are scattered around the globe, and if I’m not wrong work from home…). Well tell that to your beloved French manager and wait for the flak :)

Slides :
I’m currently waiting for the slides, they should come shortly.
Update July 31st :
I’ve received a link towards the slides a few hours ago, all slides are in pdf format :

Write access granted…

New CodeHaus Logo

… to codehaus.

I have contributed the javancss-maven-plugin a while ago (december last year) to the Mojo project at codehaus, and I have just been granted committer rights (which means having writing access to the source code). I’m now a young hausmate at codehaus.

I’ve “played” with open source software for some times now, I’ve got a couple of projects at sourceforge and contributed patches to Hibernate and Cruisecontrol, but for me it’s the first real engagement into a big real organized Open Source group.

My first work, with this new priviledges, has been to deploy the first version of the javancss-maven-plugin. Go get it.

Mergere Maestro

Maestro is a Maven distribution proposed by Mergere ( a company offering commercial service on maven and continuum).
It comes into two flavors Developer Client and Project Server.

Maestro Developer Client :
On Windows, it is basically a good installer which setups Maven 2.0.4 properly including external repository mirrors.
And it does it well, setup maven property, create .m2 directory (could be difficult for simple user to do it, espcially on windows) put inside a basic settings.xml (and yes it backups yours before creating the new one). Everything to get you started.
I recently had to deploy maven in a development team consisting of 10 developers… I could have used it rather than copy pasting and translating maven installation instruction on the local wiki.
It comes with a lot of various pdf including the maven book I spoke about some time ago.
It really erase the geek tool feeling you have when installing tools like ant or maven. It look seducing for people not friendly with this feeling : ie most of the corporate world ;)

Maestro Project Server :
I’ve not yet played enough with the Maestro Server to give a proper review of it but from high in the sky its seems to be a Maven + Continuum bundle.

Maestro can be freely downloaded from Mergere products page (registration required)

The Maven 2 POM demystified

The Maven 2 POM demystified is an excellent article going deeply into the way Maven2 project Object Model files are written. It’s a clear, concise and precise view of the pom.xml format.

A draft has been submited some time ago into maven mailing list, I used it in the maven2 quick training I made recently (slides to be posted soon on this page).
It’s complementary to the maven2 book I spoke about a few days ago.

Free Maven2 Book

Better Builds With Maven Book Cover

The long awaited book on Maven2 is out, titled “better build with Maven”.
And best of all it’s free (registration required), you can’t ask for more …
This seems to be a good successor (not in the same format nor style) to Maven : A developer’s Notebook.
Vincent Massol is still a co-author as well as other very active Maven2 developers.

Here’s the table of contents :

  • Introducing Maven
  • Getting Started with Maven
  • Creating Applications with Maven
  • Building J2EE Applications
  • Developing Custom Maven Plugins
  • Accessing Project Health with Maven
  • Team Collaboration with Maven
  • Migrating to Maven

As I’m preparing a Maven2 training, this will certainly helps !
Going to read it asap and post a review here.

( source )