BNM v0.1.0

BNM is not Maven.
BNM is rather a prof of possible enhancements to Maven.

Get Started

Get the BNM launcher launcher-0.1.0.jar and unzip it int a new folder. You'l get a few files:
bnm                 the Unix shell file
bnm.bat             the Windows batch file
BnmLauncher.class   the bootstrap class which starts BNM
COPYING             the GPL
src                 the source code for BnmLauncher.class
Then start bnm or bnm.bat (depending on your operation system).
It downloads the remaining required artifacts into your repository and relaunches BNM using the specified version.
Once the launcher got all required files, it never attempts to download the files again, until you switch to a newer version. Why? Because it doesn't use SNAPSHOT versions and thus the content won't change.
If there is a new version, you can manually edit the version in the launcher batch/script file, or download the most recent launcher package.

How good is BNM

BNM is able to build its own project tree and is more than 3 times faster than Maven 2. And it is still faster than Maven 3.
Not everything is implemented yet, but BNM can build itself :-)
build toolcommand line build time (best of 3 repeated runs)
Maven 2 mvn.bat clean install -- failes to resolve org.eclipse versions
Maven 3 mvn.bat clean install 25.8s
Maven 3 mvn.bat -T2 clean install 17.7s
BNM 0.1.0 bnm clean install 11.7s

Report bugs in bugzilla or use the forum.

There is also an eclipse integration using the BNM eclipse plugin. Please use the eclipse update site http://www.bebbosoft.de/plugins to install the feature.
installbnm.png
Once installed learn how to use it [here].

Can I use existing pom.xml files?

Yes you can! Right now not all plugins are present. Since BNM does not use Maven plugins a replacement plugin must exist. Each replacement plugin maps itself to the maven id (ignoring the maven version). BNM runs its own plugins on your existing pom.xml files.
Since BNM is more a proof that Maven could be much faster, there is still hope that Maven will improve. Nevertheless it is futile to wait. The best way today is to use BNM and Maven in parallel: - use BNM to compile/build during your development cycle - use Maven for everything else This also reduces the need for many plugins (deployment etc. pp).

Can I code own plugins?

Yes you can. And you don't need any special processing to create a plugin since BNM uses Java annotations to attach the pom.xml values to plugin instances.
Still be aware that BNM plugins must be thread safe! If your plugins hooks some third party stuff which isn't thread safe, synchronize the invokation in the plugins code.

Feedback

Also checkout http://www.bebbosoft.de/bugs/ to enter bugs, requests and so on.

License

BNM is published under GPLv3. The sources are bundled into the JAR files.
If you need a commercial license feel free to contact us.

Features

Internals

If you plan to use a tool like BNM it is important to know how everything works together.

Ingredients

First the ingredients:

merge order

Those are merged in this order to create a resolved pom (see below how merge works).
rev: 1.30