Maven - Aperçu

Qu'est-ce que Maven?

Maven est un outil de gestion et de compréhension de projet qui fournit aux développeurs un cadre complet de cycle de vie de construction. L'équipe de développement peut automatiser l'infrastructure de construction du projet en un rien de temps car Maven utilise une disposition de répertoire standard et un cycle de vie de construction par défaut.

En cas d'environnement d'équipes de développement multiples, Maven peut mettre en place la manière de travailler selon les normes dans un délai très court. Comme la plupart des configurations de projet sont simples et réutilisables, Maven facilite la vie des développeurs tout en créant des rapports, des vérifications, des configurations d'automatisation de construction et de test.

Maven fournit aux développeurs des moyens de gérer les éléments suivants:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • SCMs
  • Releases
  • Distribution
  • Liste de diffusion

Pour résumer, Maven simplifie et standardise le processus de construction du projet. Il gère la compilation, la distribution, la documentation, la collaboration d'équipe et d'autres tâches de manière transparente. Maven augmente la réutilisabilité et prend en charge la plupart des tâches liées à la construction.

Évolution Maven

Maven a été conçu à l'origine pour simplifier les processus de construction dans le projet Jakarta Turbine. Il y avait plusieurs projets et chaque projet contenait des fichiers de construction ANT légèrement différents. Les fichiers JAR ont été enregistrés dans CVS.

Le groupe Apache s'est ensuite développé Maven qui peut construire plusieurs projets ensemble, publier des informations sur les projets, déployer des projets, partager des JAR à travers plusieurs projets et aider à la collaboration d'équipes.

Objectif

L'objectif principal de Maven est de fournir aux développeurs les éléments suivants:

  • Un modèle complet de projets, réutilisable, maintenable et plus facile à comprendre.

  • Plugins ou outils qui interagissent avec ce modèle déclaratif.

La structure et le contenu du projet Maven sont déclarés dans un fichier xml, pom.xml, appelé Project Object Model (POM), qui est l'unité fondamentale de tout le système Maven. Dans les chapitres suivants, nous expliquerons POM en détail.

Convention sur la configuration

Maven utilise Convention plus de Configuration, ce qui signifie que les développeurs ne sont pas tenus de créer eux-mêmes le processus de construction.

Les développeurs n'ont pas à mentionner chaque détail de configuration. Maven fournit un comportement par défaut judicieux pour les projets. Lorsqu'un projet Maven est créé, Maven crée une structure de projet par défaut. Le développeur est uniquement tenu de placer les fichiers en conséquence et il / elle n'a pas besoin de définir de configuration dans pom.xml.

À titre d'exemple, le tableau suivant montre les valeurs par défaut des fichiers de code source du projet, des fichiers de ressources et d'autres configurations. En supposant,${basedir} désigne l'emplacement du projet -

Article Défaut
code source $ {basedir} / src / main / java
Ressources $ {basedir} / src / main / resources
Des tests $ {basedir} / src / test
Code d'octet respecté $ {basedir} / cible
JAR distribuable $ {basedir} / target / classes

Afin de construire le projet, Maven fournit aux développeurs des options pour mentionner les objectifs du cycle de vie et les dépendances du projet (qui reposent sur les capacités du plugin Maven et sur ses conventions par défaut). Une grande partie de la gestion de projet et des tâches liées à la construction sont gérées par les plugins Maven.

Les développeurs peuvent créer n'importe quel projet Maven sans avoir besoin de comprendre le fonctionnement des plugins individuels. Nous discuterons en détail des plugins Maven dans les chapitres suivants.

Caractéristiques de Maven

  • Configuration de projet simple qui suit les meilleures pratiques.

  • Utilisation cohérente dans tous les projets.

  • Gestion des dépendances avec mise à jour automatique.

  • Un référentiel important et croissant de bibliothèques.

  • Extensible, avec la possibilité d'écrire facilement des plugins en Java ou en langage de script.

  • Accès instantané à de nouvelles fonctionnalités avec peu ou pas de configuration supplémentaire.

  • Model-based builds - Maven est capable de créer n'importe quel nombre de projets dans des types de sortie prédéfinis tels que jar, war, métadonnées.

  • Coherent site of project information - En utilisant les mêmes métadonnées que pour le processus de construction, maven est capable de générer un site Web et un PDF avec une documentation complète.

  • Release management and distribution publication - Sans configuration supplémentaire, maven s'intégrera à votre système de contrôle de source tel que CVS et gère la sortie d'un projet.

  • Backward Compatibility- Vous pouvez facilement porter les multiples modules d'un projet dans Maven 3 à partir d'anciennes versions de Maven. Il peut également prendre en charge les anciennes versions.

  • Automatic parent versioning - Pas besoin de spécifier le parent dans le sous-module pour la maintenance.

  • Parallel builds- Il analyse le graphe de dépendance du projet et vous permet de créer des modules de planification en parallèle. Grâce à cela, vous pouvez obtenir des améliorations de performances de 20 à 50%.

  • Better Error and Integrity Reporting - Maven a amélioré les rapports d'erreurs, et il vous fournit un lien vers la page wiki Maven où vous obtiendrez une description complète de l'erreur.