You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Guillaume Nodet (Jira)" <ji...@apache.org> on 2025/01/20 10:21:00 UTC
[jira] [Updated] (MNG-8052) Define a new lifecycle for Maven 4
[ https://issues.apache.org/jira/browse/MNG-8052?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet updated MNG-8052:
---------------------------------
Component/s: Plugins and Lifecycle
> Define a new lifecycle for Maven 4
> ----------------------------------
>
> Key: MNG-8052
> URL: https://issues.apache.org/jira/browse/MNG-8052
> Project: Maven
> Issue Type: New Feature
> Components: Core, Plugins and Lifecycle
> Reporter: Guillaume Nodet
> Assignee: Guillaume Nodet
> Priority: Major
> Fix For: 4.0.0-beta-4, 4.0.0
>
>
> The lifecycle is now defined as a tree of phases, each phase being split with a {{before:}} phase and a {{after:}} phase. Each phase is given a list of timing constraints: a phase from the same lifecycle (compile must be executed after sources), a phase in project dependencies ({{compile}} must execute after {{compile-only}} project dependencies have reached the {{ready}} phase).
> The default lifecycle is defined in the {{DefaultLifecycleRegistry}}.
> In addition to the {{before:}} and {{after:}} prefixes, an ordering can be defined by appending an integer inside brackets, for example, {{after:integration-test[1000]}}.
> Note that there are a few changes with the Maven 3 default lifecycle: it's a graph, so {{sources}} does not always execute after {{resources}}, nor {{compile}} after {{resources}}. Also, unit tests and integration tests have been moved to the {{verify}} phase which is run last inside the {{build}} phase, but not in the {{package}} 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. The {{install}} and {{deploy}} phases now depends on {{package}}, but not {{verify}} (and {{deploy}} does not require {{install}}). This currently only has an effect when calling {{mvn deploy}} with the concurrent builder (see MNG-8225).
> It's missing the ability to create some scheduling constraints in the POM and to define custom phases. All executions in a given phase such as compile or after: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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)