Maven Concepts - Lifecycle: Difference between revisions
(→Phases) |
|||
Line 32: | Line 32: | ||
executes validate, initialize, etc. | executes validate, initialize, etc. | ||
During the execution of a phase, the ''[[#Plugin_Goal|plugin goals]]'' bound to that phase are executed in order. | During the execution of a phase, the ''[[#Plugin_Goal|plugin goals]]'' bound to that phase are executed in order. A phase can have zero or more goals bound to it, and if the phase has zero goals, the phase will not execute during the lifecycle. | ||
==Default Lifecycle Phases== | ==Default Lifecycle Phases== |
Revision as of 18:19, 18 November 2016
External
- Introduction to the Build Lifecycle https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
- Lifecycles Reference https://maven.apache.org/ref/3.3.9/maven-core/lifecycles.html#
Internal
Overview
Lifecycle
A Maven lifecycle represents the clearly defined sequence of steps required for building and distributing a project artifact.
There are three built-in lifecycles: default, clean and site. The default lifecycle handles artifact building and deployment, and these are its phases. The clean lifecycle cleans the work area by executing the following phases. The site lifecycle handles the creation of the project's site documentation.
A lifecycle is defined by a sequence of build phases. The phases are executed sequentially.
Phases
A Maven phase represents a stage in a lifecycle.
Phases are usually invoked from command line. Invoking a phase means that all previous declared phases for the lifecycle are executed in order. For example:
mvn install
executes validate, initialize, etc.
During the execution of a phase, the plugin goals bound to that phase are executed in order. A phase can have zero or more goals bound to it, and if the phase has zero goals, the phase will not execute during the lifecycle.
Default Lifecycle Phases
validate
The phase validates whether the project is correct and all necessary information is available.
initialize
generate-sources
process-sources
generate-resources
process-resources
compile
The phase compiles the source code.
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile
process-test-classes
test
The phase tests the compiled source code by using a suitable test framework. The tests should not require the code to be packaged or deployed.
prepare-package
package
The phase packaged the compiled code in a distributable format. Also see <packaging>.
If using the assembly plugin, this is usually the phase where the plugin's "single" goal is associated with.
pre-integration-test
integration-test
post-integration-test
verify
install
The phase Installs the packaged artifact into the local repository.
deploy
The phase copies the packaged artifact to a remote repository.
Clean Lifecycle Phases
Plugin Goal
A plugin goal represents a specific task, with a finer granularity than a build phase, which contributes to the building of the project's artifact.
Plugin goals can be executed in isolation, by direct invocation, but more commonly they are bound to specific phases in a project lifecycle, and executed when the phases they are bound to execute.
A goal may be bound to zero or more build phases. If a goal is bound to more than one phase, it will be called in all the phases it is bound to.