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 :
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 :
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 |
Le tableau est identique à l'exception de la phase package qui devient :
| Goal Binding | artifactId | prefix | goal |
|---|---|---|---|
package | maven-xxx-plugin | xxx | xxx |
où xxx peut être l'un quelconque des types d'empaquetage ci-dessus.
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 |
Concerne les projets multi-modules, pour l'installation et le déploiement de tous les modules et du POM du projet parent (??).
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 |
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 | - | - | - |
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 |