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 * Single goal
- session lifecycle - 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.
- dep resolution (if POM present) - dep resolution (if POM present)
- dep download - dep download++
- each downloaded dep is registered in MavenSession to track - each downloaded dep is registered in MavenSession to track
snapshot downloads snapshot downloads
- goal lifecycle - 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 - download plugin for goal if necessary
- goal execution - goal execution
* Multiple goals * Multiple goals
@ -50,11 +44,26 @@ Maven Lifecycle
* is there a case where a goal should in fact be executed twice in a * is there a case where a goal should in fact be executed twice in a
session? Something like "m2 clean foo clean" 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 Notes
* Goal Resolution: Involves resolving all implied goals (via prereqs, pre- * +POM reading: we always attempt to read the POM but it may not be
and post-goal decorations, and resolving/downloading any associated present because some goals don't require the presence of a POM like
plugins. Plugin download must be a utility used by this, to ensure that stub generation, project setup or whatever. So we can flag this state
any resolved goals can have their associated plugins downloaded. 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.