(If you want more freedom take a look at gradle)
Writing our own plugin is time consuming but we can easily extend maven capabilities with executing groovy code during the build.
All we need to do is add gmaven plugin into pom.xml.
Let's see an example that will make our maven build tell us which operating system we are using:
When we add the plugin we need to specify in which phase it will be run ('validate') and which goal of the plugin will be invoked ('execute'). Then in the source section we write our groovy code that will be executed. As you can see we have access to the dependencies declared in dependencies section of the pom file.
If we don't want to inline our script we can specify the file that contains it:
Another interesting feature is access to maven variables that can be used in the xml configuration of the build.
The findbugsSettingsDirectory variable is set inside our script and then used in the configuration of findbugs plugin.