o reformatted with footnote markers to keep lifecycle spec's cleaner and keep a more verbose explanation separate.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163048 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
John Dennis Casey 2004-09-08 00:11:51 +00:00
parent 4e17a1646d
commit 5367b7ee28
1 changed files with 23 additions and 14 deletions

View File

@ -8,27 +8,21 @@ Maven Lifecycle
* Single goal
- session lifecycle
- POM reading: we always attempt to read the POM but it may not be
present because some goals don't require the presence of a POM like
stub generation, project setup or whatever. So we can flag this state
and throw an exception down the line if a goal in fact requires a
project, or if there is a POM when there shouldn't be one.
- session lifecycle+
- dep resolution (if POM present)
- dep download
- dep download++
- each downloaded dep is registered in MavenSession to track
snapshot downloads
- goal lifecycle
- goal resolution (we assume here only one goal is resolved)
- goal resolution (we assume here only one goal is resolved) +++
- download plugin for goal if necessary
- goal execution
* Multiple goals
@ -50,11 +44,26 @@ Maven Lifecycle
* is there a case where a goal should in fact be executed twice in a
session? Something like "m2 clean foo clean"
- DAG (or DAG-like process) is used for goal resolution, which
should ensure that only explicit multi-calls execute multiple
times.
Notes
* Goal Resolution: Involves resolving all implied goals (via prereqs, pre-
and post-goal decorations, and resolving/downloading any associated
plugins. Plugin download must be a utility used by this, to ensure that
any resolved goals can have their associated plugins downloaded.
* +POM reading: we always attempt to read the POM but it may not be
present because some goals don't require the presence of a POM like
stub generation, project setup or whatever. So we can flag this state
and throw an exception down the line if a goal in fact requires a
project, or if there is a POM when there shouldn't be one.
* ++Artifact downloading: all artifacts downloaded during session
execution should be registered in a session-scope collection of id's
to avoid multiple download of -SNAPSHOT and other artifacts.
* +++Goal Resolution: Involves resolving all implied goals (via prereqs,
pre- and post-goal decorations, and resolving/downloading any associated
plugins. Plugin download must be a utility used by this, to ensure that
any goals - specified or resolved - have their associated plugins
downloaded.