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