Hi everyone,

Wonder if we already discussed defining the lifecycle in the project (maybe
in $root/.mvn).
High level the need is to be able to change the default lifecycle in the
root pom without having to define a custom extension - in other words it is
about having a built-in extension.
The typical need is to add a mojo in the default lifecycle (add frontend
magement for ex) or replace some plugins by others (for example compiler by
scalac plugin, surefire by spec2 plugin for a scala based project etc...).
The way I'm seeing it is to let the xml defining the lifecycle be put in
.mvn/default-lifecycle.xml - I don't know if we want to use the prefix
(default here) as a reference you can put in the pom but at least default
makes sense IMO.
The lifecycle.xml itself would likely be extended to add some precondition
to each plugin (if src/main/frontend exists then add frontend:npm for ex).

I know it is a quite common need I have and not something I would put in a
custom extension because it is very "by project" and not shareable so a
shared extension does not make sense and packaging a plugin/extension for a
single project is bothering for nothing.

I'm planning to give a try with a custom extension in the summer but
thought it can be worth some discussion there too.

Wdyt?

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>

Reply via email to