work in progress

Apache NetBeans maven utilities background

A set of tools and plugin were made at codehaus by Milos Kleint to allow usage of Apache Maven for building Apache NetBeans mavenized platform.

The nb-repository-plugin is a plugin to prepare and publish artefacts on a maven repository to make Apache NetBeans artifacts reachable using Apache Maven.

The nbm-maven-plugin allows to create Apache Netbeans nbm or Apache NetBeans application / platform using Apache NetBeans

Apache NetBeans nbpackage

nbpackage is a command line tool and library for packaging the NetBeans IDE or a NetBeans platform application into a native installer or package.

It supports optional bundling of a Java runtime to make a self-contained application. It is inspired by the JDK's jpackage tool, but tailored to the needs of the IDE and RCP, with a different range of packagers, and some support for cross-platform package building.

List of artefacts you may want to release: (see diagram below to have the full picture)

Apache NetBeans parent pom (


  common ancestor to all maven artefacts (All maven related utils (nbpackage,nbm-maven-repository, nb-repository-plugin),Apache NetBeans maven artefacts, Apache NetBeans html4j) contains mailing list and license.

Need dev ml discussion prior to release as it impacts all artefacts.

Apache Netbeans Utilities (

all items are released together

  • org.apache.netbeans.utilities:utilities-parent: common ancestor to mavenutilities.
  • org.apache.netbeans.utilities:nb-shared shared lib used by nbm-maven-plugin and nb-repository-plugin
  • org.apache.netbeans.utilities:nbm-maven-harness contains harness that maybe used by nbm-maven-plugin
  • org.apache.netbeans.utilities:nbm-maven-plugin plugin that allow usage of Apache Maven to run Apache NetBeans
  • org.apache.netbeans.utilities:nb-repository-plugin plugin that populate maven repository with Apache NetBeans artefacts
Apache NetBeans Archetype (separated repository)

Archetype referenced in Apache Netbeans.

Apache NetBeans nbpackage (

Native installer tools

Exception not intended for release:

org.apache.netbeans.utilities:maven-netbeans-skin maven site skin to give plugin site generation a look a feel like main Apache NetBeans website. (  we use snapshot version in site generation, not intended to be released)

Releasing Apache NetBeans (Maven Utilities / NBPackage )


To do a release you need to be a PMC member/ commiter.

You shall have a PGP Key, git access, and svn access.

Verify your access to repository (as commiter it should be automatic)

The release process is using Apache Maven. You need to have a settings.xml configured as follow

Source code is located on github see section below. You have to pick the project you want to publish.

Tests settings and build

Test your artefact and settings by creating a snapshot and be sure the snapshot is deployed to Maven Snapshot repository

mvn clean install -Papache-release

mvn deploy

Preparing the release

This phase will tag git with your release. Don't forget to set username if your github account is different from your apache id.

mvn release:clean

mvn release:prepare -Dusername=<apacheid>

Staging the release

mvn release:perform -Dusername=<apacheid>

After this phase you will have

  • staged items on apache: repository stage. You will need to close the staged repository prior to vote. Important to do so to avoid mixing release artefacts on same stage repo. (Could interfer with main release/or other maven release)
  • artefact in target folder/checkout/target you have artefacts *.sources-release.(zip | zip.asc | zip.sha512)

Check for folder that we use.

The git is ready to continue on master branch

Close the repository on nexus


After the items are made available you can start voting processs on the (72h minimum)


If the vote pass you need to move artefacts *.sources-release.(zip | zip.asc | zip.sha512)  to release folder, clean the previous version, and clean the dev.

You can announce new version.

Diagram organizational picture of the maven artefacts

workflow mavenutils


Milos Kleint would like to donate the toolings artefact from mojohaus to Apache NetBeans (nb-repository-plugin would be part of the donation)

Discussion on mojohaus dev list.!topic/mojohaus-dev/uw6lhFBoiqU

Code Donation

Page for ip-clearance

Verify distribution rights

Steps to follow (taken from link above)

  1. IP Clearance processing must be executed either by an Officer or a Member of the ASF. If you are not an Officer or a Member, please contact your project chair who will find an appropriate volunteer. Incubator karma is also required. Please request karma from the incubator pmc if you do not have it.
  2. (Optional) Commit an outline form, filling those parts which can be (at this stage).
  3. A software grant must be provided to the ASF. This grant can either be done by the ASF Corporate CLA (via Schedule B) or the Software Grant Agreement. The completed and signed grant must be emailed to
  4. Receipt of the software grant form must be acknowledged by an Officer of the ASF by recording in the correct file (grants.txt for a License Grant or cclas.txt for a Corporate CLA). In most normal circumstances, the officer should be the ASF Secretary, who must be provided a copy of the grant or CCLA in any case (if not originally sent or Emailed to him).
  5. Note: the grant form must be acknowledged before continuing. If the source is referenced by checksum in the grant, commit the canonical tarball for the donated code into the incubator drop area (/repos/asf/incubator/donations) together with a checksum and a detached signature. This will ensure that apache has a legal record of the grant.
  6. Complete and commit the completed form.
  7. Post a message to general@incubator prefixed [IP CLEARANCE] asking for clearance to be checked. Sign off is by lazy consensus so wait at least 72 hours for a -1.
  8. Post a [RESULT] to close the thread and let the project know that the code has been cleared for import.

  • No labels