[MNG-5668] Proof of concept implementation of dynamic phases (wip) #1448
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The lifecycle is defined as a tree, of phases, each phase being split with a
pre:
phase and apost:
phase. Each phase is given a list of timing constraints: a phase from the same lifecycle (compile
must be executed aftersources
), a phase in project dependencies (compile
must execute aftercompile-only
project dependencies have reached theready
phase), or a set of children project dependencies (to re-define aggregators, not yet implemented).The default lifecycle is defined in the
DefaultLifecycleRegistry
Note that there are a few changes with the Maven 3 default lifecycle: it's a graph, so
sources
does not always execute afterresources
, notcompile
afterresources
. Also, unit tests and integration tests have been moved to theverify
phase which is run last inside thebuild
phase, but not in thepackage
phase. The goal is to have a phase (here,package
which can run all the reactor with no tests). In order to be compatible, old phases are mapped to new ones using aliases.It's missing the ability to create some scheduling constraints in the POM and to define custom phases. All executions in a give phase such as
compile
orprocess-sources
are executed sequentially, but it would be nice to be able to execute them in different subphases, so that they could be executed concurrently.WIP, related to #1411 and #1429