1. Livres et vidéos
  2. Apache Maven - Maîtrisez l'infrastructure d'un projet Java EE (2e édition)

Apache Maven Maîtrisez l'infrastructure d'un projet Java EE (2e édition)

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre sur Apache Maven (en version 3.6 au moment de l'écriture) s'adresse à tout développeur amené à travailler sur des projets Java de taille conséquente. Il sert également de guide pour les architectes qui souhaitent mettre en œuvre Apache Maven sur un nouveau projet ou sur un projet existant.

Du développeur Java débutant à l'architecte technique, chaque lecteur trouvera dans cet ouvrage des informations claires et précises, illustrées par de nombreux schémas, pour aborder avec sérénité la découverte d'Apache Maven, jusqu'à sa gestion au sein d'une infrastructure projet. Les auteurs proposent régulièrement au lecteur de réaliser des travaux pratiques pour se forger une première expérience significative sur le produit.

L'explication des origines d'Apache Maven dans le premier chapitre permet de mieux appréhender l'importance stratégique de sa mise en œuvre sur des projets Java EE. Le deuxième chapitre permet une première approche de la philosophie générale autour de la notion de cycle de vie des projets Maven. Le troisième chapitre se focalise sur l'organisation et les relations entre projets grâce à la gestion des graphes de dépendances. C'est dans le quatrième chapitre que le lecteur trouvera les informations sur l'étendue des possibilités qu'offre Apache Maven grâce à la mise en œuvre de plugins associés à des profils.

Tout au long du cinquième chapitre, la mise en place complète d'une infrastructure autour d'Apache Maven sur un projet professionnel Java est détaillée : l'environnement de développement, la mise en place de tests, la gestion des référentiels, l'intégration continue et le processus de releases pour la livraison du projet.

Le sixième et dernier chapitre de cet ouvrage traite de la génération de rapports web complets pour la mesure de la qualité des projets Java.

Tout au long du livre les auteurs s'appuient sur une application concrète pour illustrer leurs propos. Le code source est en téléchargement sur www.editions-eni.fr.



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Table des matières

  • Avant-propos
    • 1. Public concerné
    • 2. Prérequis
    • 3. Objectifs
    • 4. Organisation du livre
    • 5. Sur le Web
  • Présentation d'Apache Maven
    • 1. Qu'est-ce qu'Apache Maven ?
      • 1.1 Définition
      • 1.2 Historique
      • 1.3 Apache Maven sur mon projet ?
    • 2. La communauté Maven
      • 2.1 Les acteurs d'Apache Maven
        • 2.1.1 Des rôles bien définis
        • 2.1.2 Comment contribuer au projet ?
        • 2.1.3 L'activité de la communauté
      • 2.2 Les ressources de références
    • 3. Installation d'Apache Maven
      • 3.1 Prérequis : la plate-forme Java
        • 3.1.1 Présentation de Java SE
        • 3.1.2 Installer le JDK sous Windows
        • 3.1.3 Installer le JDK sous GNU/Linux
      • 3.2 Installer Apache Maven sous Windows
        • 3.2.1 Où le trouver ?
        • 3.2.2 Procédure d'installation
      • 3.3 Installer Apache Maven sous Linux
        • 3.3.1 Où le trouver ?
        • 3.3.2 Procédure d'installation
    • 4. Le POM (Project Object Model)
      • 4.1 Présentation
        • 4.1.1 Format du fichier pour le POM
        • 4.1.2 Exemple de POM minimal
        • 4.1.3 Le modèle de données 4.0.0
      • 4.2 Le Super POM
    • 5. Configurer l'installation d'Apache Maven
      • 5.1 Qu'est-ce qu'un référentiel (repository) ?
      • 5.2 Le fichier settings.xml
        • 5.2.1 Où le trouver ?
        • 5.2.2 Configuration de base
        • 5.2.3 Configurer un proxy
      • 5.3 Les options de configuration
        • 5.3.1 La mémoire allouée à la JVM
        • 5.3.2 La résolution des bibliothèques logicielles en parallèle
    • 6. Premières commandes Maven
      • 6.1 Valider le POM
      • 6.2 Afficher le POM complet
      • 6.3 Gérer les erreurs
    • 7. Maven au cœur de l'infrastructure projet
      • 7.1 Présentation du projet "banque"
      • 7.2 Spécifications du projet "banque"
        • 7.2.1 Les spécifications fonctionnelles
        • 7.2.2 Les spécifications techniques
      • 7.3 Objectifs du projet envers Apache Maven
  • Définition et cycle de vie d'un projet
    • 1. Qu'est-ce qu'un projet Apache Maven ?
      • 1.1 Description d'un projet Apache Maven
        • 1.1.1 Structure d'un projet simple
        • 1.1.2 Identifier chaque projet
        • 1.1.3 Produire un artefact par projet
      • 1.2 Le modèle métier du projet "banque"
        • 1.2.1 Présentation du modèle métier
        • 1.2.2 Présentation de l'API Java Bean Validation
      • 1.3 Créer un projet Maven
        • 1.3.1 Créer un projet pour une archive Java
        • 1.3.2 Exécuter les tests
      • 1.4 Créer l'archive Java (JAR) du projet
    • 2. Le cycle de vie selon Apache Maven
      • 2.1 Qu'est-ce que le cycle de vie d'un projet ?
      • 2.2 Le cycle de vie pour le nettoyage du projet
      • 2.3 Le cycle de vie par défaut
        • 2.3.1 Définition
        • 2.3.2 Le cycle de vie par défaut pour le JAR
      • 2.4 Exécuter un traitement par un goal ou une phase ?
    • 3. Le mode commande de Maven
      • 3.1 Comment ça marche ?
      • 3.2 La syntaxe
      • 3.3 Les options principales en détail
        • 3.3.1 Les options liées à la configuration Apache Maven
        • 3.3.2 Les options liées à la sécurité
        • 3.3.3 Les options liées aux référentiels
        • 3.3.4 Les options pour les interactions avec l’exécuteur
        • 3.3.5 Les options liées à la construction des projets
      • 3.4 Les goals et les phases
    • 4. Maven et les plugins
      • 4.1 Introduction aux plugins
      • 4.2 La résolution des plugins
        • 4.2.1 Le fichier components.xml
        • 4.2.2 Les éléments du POM
      • 4.3 Les référentiels pour les plugins
      • 4.4 L'appel aux plugins
      • 4.5 Configuration des plugins
        • 4.5.1 maven-compiler-plugin
        • 4.5.2 maven-jar-plugin
      • 4.6 Associer le traitement d'un plugin à une phase
        • 4.6.1 Configuration par défaut
        • 4.6.2 Choisir une phase du cycle
    • 5. Gérer l'encodage des fichiers d'un projet
      • 5.1 Définition de l'encodage
        • 5.1.1 ASCII
        • 5.1.2 ISO-8859-1
        • 5.1.3 CP1252
        • 5.1.4 Unicode
        • 5.1.5 UTF-8
        • 5.1.6 Bilan
      • 5.2 Cas concret de problèmes liés à l'encodage
        • 5.2.1 Mise en place de l'exemple
        • 5.2.2 Contexte de l'exemple
        • 5.2.3 Mise en œuvre de l'exemple
        • 5.2.4 L'utilité de la configuration Maven
      • 5.3 Conclusion
    • 6. En résumé
  • Organisation et dépendances des projets
    • 1. La gestion des dépendances
      • 1.1 Définition et problématiques de la gestion des dépendances
        • 1.1.1 Les éléments du POM concernés
        • 1.1.2 Illustration des dépendances
      • 1.2 Les champs d'application (scope) des dépendances
        • 1.2.1 Définition
        • 1.2.2 Le scope compile
        • 1.2.3 Le scope provided
        • 1.2.4 Le scope runtime
        • 1.2.5 Le scope test
        • 1.2.6 Le scope system
        • 1.2.7 Le scope import
      • 1.3 La persistance du projet banque-persistance
        • 1.3.1 Présentation de l'API JPA 2
        • 1.3.2 Implémentation de JPA 2
        • 1.3.3 Définition de l'injection de dépendances en Java
        • 1.3.4 Apache Maven et l'injection de dépendances
        • 1.3.5 Implémentation de l'injection de dépendances avec Spring Framework
    • 2. La résolution des dépendances
      • 2.1 Comment sont identifiées les dépendances ?
        • 2.1.1 La transitivité
        • 2.1.2 L'influence du scope sur la transitivité des dépendances
        • 2.1.3 Les coordonnées complètes d'une dépendance
      • 2.2 Gérer les conflits de dépendances
        • 2.2.1 Dépendances directes
        • 2.2.2 Dépendances transitives
        • 2.2.3 Cas concret d’un conflit de dépendances
      • 2.3 À quel moment sont résolues les dépendances ?
    • 3. L'héritage et les projets multimodules
      • 3.1 Présentation des projets banque-metier et banque-web
      • 3.2 Héritage d'un POM commun
        • 3.2.1 Le type POM
        • 3.2.2 Mise en place du Corporate POM
      • 3.3 Organisation des projets en modules
        • 3.3.1 Le besoin
        • 3.3.2 Définition du reactor
        • 3.3.3 Mise en place sur le projet banque
        • 3.3.4 Le mode commande adapté au reactor
      • 3.4 Choisir une organisation de projets
      • 3.5 Organiser les dépendances
        • 3.5.1 Factoriser les dépendances
        • 3.5.2 Redéfinir une dépendance
        • 3.5.3 Centraliser les informations pour les dépendances
        • 3.5.4 Centraliser les informations pour les plugins
    • 4. Les propriétés du POM
      • 4.1 Définition
        • 4.1.1 Les propriétés disponibles
        • 4.1.2 Créer une propriété
        • 4.1.3 Les propriétés des plugins
      • 4.2 Héritage et interactions des propriétés
        • 4.2.1 Propriétés pour les versions
      • 4.3 Filtrer les fichiers ressources
        • 4.3.1 Gérer la version et la date de construction du projet
    • 5. En résumé
  • Les artefacts pour Java EE et les profils Maven
    • 1. La plateforme Java EE
      • 1.1 Introduction à Java EE
        • 1.1.1 Historique de Java EE
        • 1.1.2 Java EE aujourd’hui
      • 1.2 Conteneurs Java EE
        • 1.2.1 Java EE et projets Apache Maven
        • 1.2.2 Apache Tomcat
        • 1.2.3 WildFly
      • 1.3 Présentation de JAX-WS et JAXB
        • 1.3.1 Présentation de JAXB
        • 1.3.2 Mise en œuvre de JAXB
        • 1.3.3 Présentation de JAX-WS
        • 1.3.4 Mise en œuvre de JAX-WS
      • 1.4 Le projet de service web et son projet client
        • 1.4.1 Le projet de service web : banque-webservice
        • 1.4.2 Implémentation du projet de service web : banque-webservice
        • 1.4.3 Implémentation du projet de client de service web : banque-client-webservice
    • 2. Les profils Apache Maven
      • 2.1 Présentation générale
        • 2.1.1 Pourquoi utiliser les profils ?
      • 2.2 Les éléments du POM et du fichier settings.xml
        • 2.2.1 Éléments du profil dans le POM
        • 2.2.2 Éléments du profil dans le fichier settings.xml
      • 2.3 Intégrer les profils dans un processus Maven
        • 2.3.1 Activer les profils par leurs identifiants
        • 2.3.2 Les autres modes d'activation des profils
        • 2.3.3 Faut-il activer un profil par défaut ?
    • 3. Les types d'artefacts pour les projets Apache Maven
      • 3.1 Les types d'artefacts par défaut
      • 3.2 Les archives pour les applications web (WAR)
        • 3.2.1 Présentation
        • 3.2.2 Apache Maven et le format WAR
        • 3.2.3 Les projets WAR
        • 3.2.4 Déployer un WAR dans Apache Tomcat
        • 3.2.5 Configurer le POM
      • 3.3 Les archives pour les applications d'entreprise (EAR)
        • 3.3.1 Présentation
        • 3.3.2 Apache Maven et le format EAR
        • 3.3.3 Les projets EAR
        • 3.3.4 Déployer un EAR pour WildFly
        • 3.3.5 Configurer les sous-systèmes de WildFly
      • 3.4 Les autres formats d'artefacts
        • 3.4.1 Créer un JAR encapsulant ses dépendances
        • 3.4.2 Créer une archive ZIP
    • 4. En résumé
  • Apache Maven dans un contexte professionnel
    • 1. Introduction
      • 1.1 Le contexte
      • 1.2 Qu'est-ce qu'un SNAPSHOT ?
      • 1.3 Qu'est-ce qu'une Release ?
    • 2. Apache Maven et les SCM
      • 2.1 Qu'est-ce qu'un SCM ?
      • 2.2 Configuration des SCM pour Apache Maven
        • 2.2.1 Le plugin maven-scm-plugin
      • 2.3 Configuration pour Apache Subversion (SVN)
        • 2.3.1 Présentation de Subversion
        • 2.3.2 Configuration du projet pour SVN
      • 2.4 Configuration pour Git
        • 2.4.1 Présentation de Git
        • 2.4.2 Configuration du projet pour Git
      • 2.5 Maven et le SCM dans un contexte professionnel
    • 3. Les environnements de développement
      • 3.1 Les IDE et Apache Maven
      • 3.2 L’environnement de développement Eclipse
        • 3.2.1 Présentation
        • 3.2.2 Installer Eclipse
        • 3.2.3 Configurer Eclipse
        • 3.2.4 Installer un plugin Eclipse pour SVN
        • 3.2.5 Eclipse et Git
      • 3.3 Le support de Maven dans Eclipse : m2eclipse
        • 3.3.1 Présentation
        • 3.3.2 Configuration
        • 3.3.3 Utilisation
    • 4. Apache Maven et les tests
      • 4.1 Introduction aux tests
      • 4.2 Les tests unitaires
        • 4.2.1 Exécuter un seul test d'une classe de tests
      • 4.3 Les tests d'intégration
        • 4.3.1 Partager des classes de tests
        • 4.3.2 Exécuter les tests d'intégration avec un container Tomcat
      • 4.4 Configurer l’exécution des tests
    • 5. Les référentiels Apache Maven
      • 5.1 Présentation
        • 5.1.1 Le référentiel local
        • 5.1.2 Les référentiels distants
      • 5.2 Cycle de vie et accès aux référentiels
      • 5.3 Installation dans un référentiel local
      • 5.4 Déploiement dans un référentiel distant
        • 5.4.1 Les protocoles pour le déploiement
        • 5.4.2 Déploiement dans les référentiels avec WebDAV
        • 5.4.3 Sécuriser les déploiements
        • 5.4.4 Bilan
      • 5.5 Gestion des artefacts dans le référentiel
        • 5.5.1 L'organisation des artefacts en cours de développement
        • 5.5.2 L'organisation des artefacts en version Release
        • 5.5.3 Les artefacts déployés
        • 5.5.4 Purger un référentiel
        • 5.5.5 Travailler en mode déconnecté
      • 5.6 Les problèmes d'accès réseau
      • 5.7 Bilan
    • 6. Les gestionnaires de référentiels Maven
      • 6.1 Présentation
      • 6.2 Les avantages
      • 6.3 L'infrastructure du projet avec un gestionnaire
      • 6.4 Le gestionnaire de référentiels Nexus Repository
        • 6.4.1 Présentation
        • 6.4.2 Installation
        • 6.4.3 Configuration
        • 6.4.4 Validation
        • 6.4.5 Réaliser des traitements automatisés sur les référentiels
    • 7. L'intégration continue
      • 7.1 Introduction
      • 7.2 Les avantages de l'intégration continue
      • 7.3 Jenkins CI (Continuous Integration)
        • 7.3.1 Présentation
        • 7.3.2 Installation
        • 7.3.3 Configuration
        • 7.3.4 Déployer des artefacts dans Nexus Repository
        • 7.3.5 Installer un plugin
    • 8. La phase de livraison du projet : la Release
      • 8.1 Introduction
      • 8.2 Gestion des numéros de version
        • 8.2.1 Définition générale
        • 8.2.2 La gestion des numéros de version avec Maven
        • 8.2.3 Plugin pour les numéros de version
      • 8.3 Processus de Release avec Apache Maven
        • 8.3.1 Optimiser la réussite de la Release
      • 8.4 Étapes prérequises au processus de Release
        • 8.4.1 Vérifier les dépendances
        • 8.4.2 Tester les versions SNAPSHOT du projet
        • 8.4.3 Valider les paramètres techniques
        • 8.4.4 Tester le processus de Release
      • 8.5 Release à partir de l'intégration continue
        • 8.5.1 Configurer Jenkins
        • 8.5.2 Lancer la Release
        • 8.5.3 Vérifier le déploiement
        • 8.5.4 Bilan
    • 9. En résumé
  • Rapports Maven et mesure de la qualité
    • 1. Présentation des rapports avec Maven 3
      • 1.1 Introduction
      • 1.2 Les éléments du POM
      • 1.3 Configurer l’infrastructure de déploiement des sites
        • 1.3.1 Configuration du serveur web
        • 1.3.2 Configurer le Corporate POM et le fichier settings.xml
        • 1.3.3 Adapter la configuration à l'infrastructure
      • 1.4 Le format des rapports
    • 2. Générer le site web du projet
      • 2.1 Le cycle de vie pour le site du projet
      • 2.2 Le plugin de base pour la génération du site web
    • 3. Générer les rapports Apache Maven
      • 3.1 Rapports liés au code source
        • 3.1.1 Introduction et configuration
        • 3.1.2 Code source en HTML
        • 3.1.3 Documentation du code Java (javadoc)
        • 3.1.4 Analyse avec PMD
        • 3.1.5 Analyse avec Checkstyle
      • 3.2 Rapports sur les tests du projet
        • 3.2.1 Rapport d’exécution de tests
        • 3.2.2 Rapport de couverture de tests avec Cobertura
        • 3.2.3 Rapport de couverture de tests avec JaCoCo
    • 4. La mesure de la qualité des projets
      • 4.1 Qu'est-ce que la mesure de qualité d'un projet ?
      • 4.2 La mesure de la qualité des projets Maven avec SonarQube
        • 4.2.1 Présentation de SonarQube
        • 4.2.2 Installation
        • 4.2.3 Configuration de SonarQube
        • 4.2.4 Configuration de Maven
    • 5. En résumé
    • Index

Auteurs

Etienne LangletEn savoir plus

Excellent pédagogue, Etienne LANGLET est formateur depuis plus de 15 ans, consultant et développeur sur les technologies Java/Java EE mais également spécialiste des produits open Source, notamment Tomcat, Maven, Spring et le CMS Joomla!.

Maxime GRÉAUEn savoir plus

Maxime GRÉAU est architecte Java EE depuis de nombreuses années. Utilisateur averti du projet Apache Maven, il est, à ce titre, très au fait des évolutions proposées par cette nouvelle version. Par ailleurs, ses dernières missions lui ont permis de mettre en place des architectures autour de Apache Maven et cette expérience très riche lui permet de proposer aux lecteurs un livre réellement opérationnel sur le sujet.

Caractéristiques

  • Niveau Expert
  • Nombre de pages 400 pages
  • Parution juin 2019
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-01953-1
    • EAN : 9782409019531
    • Ref. ENI : EP23APAM
  • Niveau Expert
  • Parution juin 2019
    • HTML
    • ISBN : 978-2-409-01954-8
    • EAN : 9782409019548
    • Ref. ENI : LNEP23APAM

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (99,1 Ko)