Les différents cycles de maven sont définis dans le fichier META-INF/plexus/components.xml  du composant org.apache.maven:maven-core.  3 cycles de vie différents sont décrits, chacun avec leurs enchaînements de phases :

Le cycle de vie par défaut

Les différentes phases :

Name                   plugin goal
validate Valide que le projet est syntaxiquement correct et que toutes les informations nécessaires sont présentes
generate-sources Génère le code source à inclure dans la compilation
process-sources Pré-traitement du code source, par exemple pour filtrage de valeurs ou instrumentation
generate-resources Génère les ressources à inclure dans l'artefact
process-resources Copie et traite les ressources dans le répertoire de destination avant empaquetage
compile Compile le code source
process-classes Post-traitement du bytecode compilé
generate-test-sources Génère le code source des tests
process-test-sources Pré-traitement des sourecs de test avant compilation
generate-test-resources Génère les les ressources pour le test
process-test-resources Copie et traite les ressources pour le test
test-compile Compile les sources de test
test Exécute les tests unitaires
package Empaquette le code compilé (et les ressources) pour distribution
pre-integration-test Exécute des actions nécessaires à laréalisation des tests d'intégration (eg. instancier l'environnement d'exécution)
integration-test Traite et déploie le paquet si nécessaire pour exécution des tests d'intégration
post-integration-test Exécute les actions requises après la findes tests d'intégration (eg. nettoyage)
verify Vérifie l'intégrité et la qualité du paquet
deploy Déploie le paquet final pour intégration ou production

(Voir Guide du cycle de vie

Il n'existe pas de but par défaut prédéfini pour le cycle de vie default, celui-ci est sélectionné en fonction du type d'empaquetage choisi dans le POM par la  balise <packaging />. Les différents empaquetages possibles (pré-définis) sont :

Empaquetage jar

C'est l'empaquetage par défaut. Les différents plugins et leurs goals sont décrits dans  le tableau ci-dessous :

Goal Binding artifactId prefix goal
validate - -    -  
[initialize - -     -
generate-sources - -   -
process-sources -  -   -
generate-resources - - -  
process-resources maven-resources-plugin resources resources
compile maven-compiler-plugin compiler compile
process-classes - -   -  
generate-test-sources - - -  
process-test-sources - -   -
generate-test-resources - -     -
process-test-resources maven-resources-plugin resources testResources
test-compile maven-compiler-plugin compiler testCompile
test maven-surefire-plugin surefire test
package maven-jar-plugin jar jar
pre-integration-test - -   -  
integration-test - -   -  
post-integration-test - -   -  
verify - - -
install maven-install-plugin install install
deploy maven-deploy-plugin deploy deploy

Empaquetages war,ejb,ejb3,par,rar

Le tableau est identique à l'exception de la phase package qui devient :

Goal Binding artifactId prefix goal
package maven-xxx-plugin xxx xxx

xxx peut être l'un quelconque des types d'empaquetage ci-dessus.

Empaquetage ear

N'a de sens que dans un projet multi-module contenant des modules de type war et/ou  ejb/ejb3, et/ou rar ...

Le tableau est identique à l'exception de la phase package qui devient :

Goal Binding artifactId prefix goal
generate-resources maven-ear-plugin ear generate-application-xml
package maven-ear-plugin ear ear

Empaquetage pom

Concerne les projets multi-modules, pour l'installation et le déploiement  de tous les modules et du POM du projet parent (??).

Empaquetage maven-plugin

Pour générer et empaqueter le descripteur de plugin, pour intégration subséquente dans maven

Goal Binding artifactId prefix  goal
generate-resources   maven-plugin-plugin   plugin  descriptor
package maven-jar-plugin jar  jar
package maven-plugin-plugin plugin  addPluginArtifactMetadata
install maven-install-plugin install install
install maven-plugin-plugin plugin updateRegistry

Le cycle de vie clean

Pour effectuer la remise à zéro du répertoire projet (suppression des classes générés et  compilés, du site, des rapports de test ...)

Goal Binding artifactId prefix goal
pre-clean - - -
clean  maven-clean-plugin  clean  clean
post-clean - - -

Le cycle de vie site

Pour générer le site du projet.

Goal Binding artifactId prefix goal
pre-site - - -
site maven-site-plugin site site
post-site - - -
site-deploy maven-site-plugin   site deploy

index