5.1 Liste des phases du projet

Enfin, nous sommes arrivés à l'assemblage du projet. Et puis vous serez un peu surpris. Eh bien, ou fortement, comme il s'avère. Maven a revu son approche de la construction d'un projet. Et maintenant, vous en serez convaincu.

L'ensemble du montage du projet a été divisé en phases, dont je vais donner la description dans le tableau ci-dessous:

Commande Phase
1 valider vérifie l'exactitude des méta-informations sur le projet
2 compiler compile les sources
3 test exécute les tests de classe de l'étape précédente
4 emballer regroupe les classes compilées dans un nouvel artefact : jar, war, zip, ...
5 vérifier vérifie l'exactitude de l'artefact et la satisfaction des exigences de qualité
6 installer place l'artefact dans le référentiel local
7 déployer télécharge un artefact sur un serveur de production ou un référentiel distant

Dans le même temps, les étapes sont clairement séquentielles . Si vous dites à Maven d'exécuter la commande package, il exécutera d'abord les phases de validation, de compilation, de test et ensuite seulement package

En principe, il n'y a là rien de nouveau, si ce n'est qu'il y a des phases distinctes pour le contrôle qualité : valider, tester, vérifier. Et jusqu'à deux phases pour déployer l'assembly - installer et déployer.

Pour démarrer une phase spécifique, il suffit d'écrire la commande maven phase . Par exemple, pour compiler, vous devez exécuter la commande maven package . Etc.

Intellij IDEA est excellent pour travailler avec ces phases et il a un menu spécial sur la droite à ces fins :

phase maven

Ici, en plus des phases bien connues, IDEA affiche 2 commandes supplémentaires : clean et site . clean est utilisé pour effacer complètement le dossier cible et le site peut créer une documentation de projet.

5.2 Construire un projet

Si vous souhaitez compiler le projet, vous devez exécuter la phase de compilation. Cela peut être fait en utilisant la ligne de commande : mvn compile ou via l'interface IDEA en cliquant sur l' élément compile .

Après cela, Maven commencera à construire le projet et vous verrez un journal du processus de construction similaire à celui-ci :

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------

Si quelque chose s'est mal passé, le journal ressemblera à ceci :

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

Il y aura beaucoup d'informations utiles dans le journal, au fil du temps, vous apprendrez à les comprendre et à les apprécier.

5.3 Cycles de travail

Toutes les commandes maven sont divisées en trois groupes - les cycles de vie. Ils sont appelés cycles de vie car ils spécifient l'ordre des phases qui s'exécutent pendant un build ou un cycle de vie particulier car toutes les activités Maven ne sont pas des builds.

Il existe trois cycles de vie :

  • faire le ménage;
  • défaut;
  • placer.

Et chacun d'eux a son propre ordre de phase. Clean a le plus court :

  1. pré-nettoyage ;
  2. faire le ménage;
  3. poste propre.

Des phases supplémentaires cachées de pré-nettoyage et de post-nettoyage ont été ajoutées afin que le scénario de nettoyage puisse être rendu plus flexible.

Vient ensuite le cycle de vie du site , qui, comme vous le savez déjà, est conçu pour générer automatiquement la documentation du projet. Il se compose de quatre phases :

  1. pré-site
  2. placer;
  3. post-site ;
  4. déploiement sur site.

Les cycles de vie standard peuvent être améliorés avec des fonctionnalités à l'aide de plugins Maven . Nous en reparlerons plus tard, car c'est un sujet très intéressant qui mérite une conférence à part.

Et le script par défaut a la plus longue liste de phases :

  1. valider;
  2. générer des sources ;
  3. processus-sources ;
  4. générer des ressources ;
  5. processus-ressources ;
  6. compiler;
  7. processus-test-sources ;
  8. processus-test-ressources ;
  9. tester la compilation ;
  10. test;
  11. emballer;
  12. installer;
  13. déployer.

Il y a toutes les mêmes phases que vous connaissez déjà, mais quelques autres facultatives ont été ajoutées.

Premièrement, une étape populaire dans les grands projets est la génération de sources : générer du code Java basé sur XML, par exemple. Et une paire de process-sources , qui fait quelque chose avec ce code.

Deuxièmement, la génération de ressources est generate-resources et sa méthode de ressources de processus appariées . Vous verrez souvent certaines activités liées à ces phases dans les grands projets.

Et enfin, les tests. Il comporte trois phases facultatives supplémentaires qui permettent de rendre l'exécution de la phase de test aussi flexible que possible : processus-test-sources, processus-test-ressources, test-compilation.