Programme du cours
Introduction
-
Maven : présentation et historique
-
Maven dans le cycle de vie des projets
-
Priorité de la convention sur la configuration
POM : Project Object Model
-
Gestion des objets par Maven
-
Fiche projet : pom.xml
-
« Super POM » et mécanismes d’héritage
-
Structure des projets
-
Types de projets Maven : Simple, Web, Entreprise, …
-
Propriétés et de filtre des ressources
Référentiel Maven et coordinations
-
Localisation d’une librairie
-
Référentiel (repository) et architecture organisationnelle
-
Repository local et distants
-
Gestion du cache et de la sécurité : Archiva
-
Pré-requis et installation de Maven
-
Présentation et installation des techniques de configuration
Modèle de gestion des dépendances
-
Gestion des dépendances et transitivité
-
Optimisation des dépendances
-
Cycle de construction d’un projet
-
Phases et rattachement des goals Maven aux différents cycles
-
Plateforme d’exécution de plugins
Les profils
-
Définition et intérêt des profils
-
Configuration et mise en œuvre
-
Bonnes pratiques
Développement de plugins
-
Création d’un plugin en Java
-
Création d’un type de projet
-
Debug de l’exécution d’un plugin dans un IDE
-
Groovy comme langage alternatif
Archetype et Assemblies
-
Définition et spectre des archetypes existants
-
Génération de livrable à la demande
Gestion de configuration
-
Communication avec un gestionnaire de sources
-
Fabrication d’un livrable et détails des pré-requis
Organisation des tests
-
Organisation Maven pour les tests d’intégration et fonctionnels
-
Debug des tests dans Eclipse
-
Tests d’intégration s’exécutant au sein d’un navigateur Web
Génération de rapports
-
Génération du site Maven de projet
-
Génération de rapports : Javadoc, couverture de code, détection de bugs, normes dev.
-
Techniques de déploiement du site
Maven dans les équipes de développement
-
Modes d’utilisation de Maven avec Eclipse
-
Plugin m2eclipse
Intégration continue
-
Problématiques et enjeux
-
Outillages et mise en pratique avec Hudson
Limites, avantages et futures évolutions
-
Comparaison entre Maven et Gradle
-
Gestion d’un build incrémental