Task oriented UI for Maven projects

| 3 Comments

Configuring Maven projects and adhering to the declared best practices can be sometimes tough. I've tried to come up with a solution based on the IDE and task oriented UI for that.
How does it look like? First there are code generators directly in the pom.xml file (In NetBeans accessible from the editor's popup menu, main menu or via Alt-Insert shortcut) For each supported usecase there is one item that either appears all the time, or only when the relevant configuration is not present. Eg. If the IDE figures you already have the Maven Site, it shall not offer you to generate it.

Second there is a new panel into the Project Properties dialog that does approximately the same thing, It's called Generators and lists the available tasks. It will also show the ones that are recognized to be present in the project already. Ideally some generators shall appear on other panels (like Scala or Groovy language configuration which shall be placed in the Sources panel) but there's only APIs to plug new panels to the dialog, not into existing ones.

And what do the actual generators do? They add dependencies and/or plugins to your pom. Eventually some basic configuration. It's smart enough to figure that you have the dependency/plugin version managed already and omit the version in that case. At the same time for "pom" packaged projects it will prefer adding the plugin/dependency management section as well. If you already define the plugin or dependency, it will skip it during generation. So it should be smarter than plain copy & paste from the maven plugin's website.

And what generators are currently implemented?


  • Maven SIte - it creates the site.xml file for you, adds and configures some basic report plugins.

  • Scala - creates the scala source roots and adds the scala-library as dependency, configures the maven-scala-plugin. Please note that in order to have the Scala editor support you will need to install the Scala related NetBeans modules.

  • Groovy - as as with Scala, source roots, dependency and plugin config to get started with writing your projects with Groovy

  • Javarebel profile that adds the necessary configuration for running with Javarebel jvm agent

  • You have ideas for more? Please add your suggestions at the comment area.

And where can you get the thing? It's available from
kenai.com, should work in 6.7+ (thus also in 6.7.1 and 6.8M1). Please note that some Scala/Groovy integration fixes only appear in 6.8M1. There's 2 zip files. Both are approx same quality, the latest one is a snapshot only though as it's using currently unreleased 2.8.0-SNAPSHOT of Scala. Yes, this NetBeans plugin is written in Scala :)

3 Comments

Yes! many more, in fact I believe ideally this should be pluggable. But for now just make the UI more pluggable (all the funcions appear as hard coded).

One idea is to include POM setttings to make a runnable Shaded jar. (maven-shade-plugin)

That is awesome milo! Can't wait to try it out!

Luis: great idea with the shade plugin. Another one that comes to mind would be webstart.
With regard to your extensibility comment, for now I'd rather keep all in one place, if you feel like contributing to the project, I'll be more than happy to make you a commiter. Or you can only send me the mercurial changesets..

About this Entry

This page contains a single entry by mkleint published on August 6, 2009 10:05 AM.

NB 6.7.1 - 20 Maven related bugs fixed was the previous entry in this blog.

Using annotations in Maven NetBeans Module projects is the next entry in this blog.

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