Book Image

Mastering Apache Maven 3

Book Image

Mastering Apache Maven 3

Overview of this book

Table of Contents (16 chapters)
Credits
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

Building a custom lifecycle


A lifecycle defines a process. It defines an ordered set of phases that get executed one after the other. The Maven default lifecycle is sufficient to address most of the use cases in build management and automation. However, we might need to alter the behavior of certain phases. Defining a phase and altering a phase are two different things and they are done in two different ways. Accepting the default lifecycle but altering its default behavior has to be done with a proper plugin binding.

Lifecycle phases are dumb entities; they inherit the behavior from the associated plugins. The jar goal of maven-jar-plugin is associated with the package phase of the default lifecycle, for any artifact having the jar packaging. Similarly, we have a set of other plugins associated with the package phase for the ear, war, pom, rar, par, ejb, and ejb3 packaging types. What if we need to introduce a new custom package type? How do we introduce it to the package phase of the default...