O'Reilly logo

Maven: A Developer's Notebook by Timothy M. O'Brien, Vincent Massol

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 6. Writing Maven Plug-ins

You have seen that Maven is constructed from a series of plug-ins, and now it’s time to build your own. You may want to do this for a few reasons:

Modularity

Your project’s maven.xml file is getting too big and you wish to streamline it.

Reusability

You want to reuse the same build logic in several Maven projects.

Writing a Simple JAR Execution Plug-in

In this lab you’ll write a plug-in which can run an executable JAR. This is a simple plug-in that should get you started with the basics of plug-in writing.

How do I do that?

The first thing to know is that a Maven plug-in is just another Maven project; any plug-in project will have the same structure as a normal Maven project: a project.xml file, a project.properties file, documentation in an xdocs/ directory, etc. The only difference with a standard Maven project is that the project.xml file should not reference elements defined in a parent Project Object Model (POM). This is because the parent POM is not included when the plug-in is deployed and the referenced elements won’t be found at execution time. Of course this doesn’t matter if the reference elements are not used by the plug-in at runtime.

In addition to these standard Maven files, a plug-in project has two specific files, as shown in Figure 6-1:

Note

Minimize references to parent POMs in a plug-in’s project.xml file.

plugin.jelly

This file defines a plug-in’s goals, and it is where you will put all the plug-in logic in the form of Jelly script. This ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required