BNM is a prof of possible enhancements to Maven.
How good is BNM
BNM is able to build its own project tree and is more than 3 times faster than Maven. Not everything is implemented yet, but BNM can build itself.
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.
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.
Here are some key features of "BNM":
· BNM has a small launcher
· BNM is compact
· BNM works much faster than Maven
· parallelizes downloads
· parallelizes the build process
· BNM is different / better?
· BNM performs no updates on final artifacts (non SNAPSHOT version)
· BNM performs no updates on SNAPSHOT version which are part of the current project tree.
· BNM is more strict (maybe more precise!?)
· no support for version ranges since this breaks the build (You always get exactly the specified version)
· disallows variable usage in id, artifactId, groupId, version, scope and packaging fields.
· Eclipse plugin for a new way of using Maven/BNM projects
· action to create the next SNAPSHOT version of an artifact and update all dependencies inside the project tree
· action to finalize an artifact and update all dependencies inside the project tree
· action to get a subproject as Eclipse project