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. ...

Get Maven: A Developer's Notebook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.