We need the ability to bind a Mojo to a custom LifeCycle.
Our specific use case is to be able to perform extra tasks during release that need to occur at times other than the small window provided by the maven-release-plugin's run-preparation-goals and run-perform-goals phases. In particular we need Mojos to execute during the scm-commit-development and scm-commit-rollback phases.
So we need the ability to bind our plugin's Mojos to those phases.
I would think that there are probably many other use cases, for other custom LifeCycles, not only for the release-plugin.
A mechanism for binding Mojos to custom LifeCycles provides a much cleaner mechanism for plugins like the release-plugin that are aware that they need to integrate with other plugins.
I would like to propose a syntax similar to:
Where the groupId and artifact binding of the phase follow the same defaulting process at that used to define dependencies. That is the above
binding could be rewritten as:
The other (IMHO poorer) option would be to include the LifeCycle of the release-plugin as part of the Maven core.