December 2008 Archives

NB 6.5 artifacts in a Maven repository?

If anyone wonders why the NetBeans 6.5 binaries still aren't at the Maven repository at deadlock.netbeans.org, here is why.

The maven repository is primarily targeted to be used together with nbm-maven-plugin that creates NetBeans module artifacts. Actually the repository itself is being automatically generated by one the goals of the plugin (populate-repository goal).

There is a new major version of the plugin waiting for release. Among other things, like improved support for platform based development, this new version also reworked how the automatic generation of the repository with NetBeans artifacts works.


  • It uploads both module jar files and the NBM files. These are crucial to some of the new features of the plugin

  • It consults a Nexus repository index to generate proper dependency metadata. For libraries not found in the index, a custom groupId+artifactId coordinates are created and the binaries (with metadata) are hosted at the same repository as the NetBeans modules.

  • A POM is generated for each of the IDE's clusters along with a list of modules in that cluster

All these features (and especially the second entry) are in fact causing the repository content not to be backward compatible with the previous version. It could be probably used with the 2.6.x version of the plugin but it would behave differently than the content generated by that 2.6.x version.

One option is to have the deadlock repository dedicated to 2.6.x plugin and for 3.0.x and later, just use a different repository where new metadata gets created. I'm indeed currently in talks to find a new place for the NetBeans binary artifacts, so a new repository is to be expected for use by 3.0.x.
However it will not solve the problem entirely, might make it worse actually. As there will be Maven POMs floating around the internet that shall describe the very same artifact, but the metadata contained within (eg. stated dependencies) will be different. If these meet in your local repository at the same time, you're in trouble and get non-reproducible and irrationally failing builds :(

Therefore the only sane solution I was capable of finding is to never generate the repository content for Netbeans 6.5 using 2.6.x version of the plugin and only make the 3.0.x version available.
If you need the old bits generated, you are free to do so locally at your company/project using the very same maven goal I use for the public repository.

I will generate the content for the new repository as soon as I get hold of the new server and after I release the 3.0 version of the nbm-maven-plugin.

PS: As you might notice, I will not be generating NetBeans 6.0/6.1 content using the new 3.0.x plugin goal. Again to prevent a clash in the metadata..

About this Archive

This page is an archive of entries from December 2008 listed from newest to oldest.

November 2008 is the previous archive.

February 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.