Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  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)

1 avis

Informations

Livraison possible dès le 22 avril 2024
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-409-01953-1
  • EAN : 9782409019531
  • Ref. ENI : EP23APAM

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-01954-8
  • EAN : 9782409019548
  • Ref. ENI : LNEP23APAM
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...
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Expert
  • Nombre de pages 400 pages
  • Parution juin 2019
  • Niveau Expert
  • Parution juin 2019
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

Téléchargements

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
    2. 2. Historique
    3. 3. Apache Maven sur mon projet ?
  2. La communauté Maven
    1. 1. Les acteurs d’Apache Maven
      1. a. Des rôles bien définis
      2. b. Comment contribuer au projet ?
      3. c. L’activité de la communauté
    2. 2. Les ressources de références
  3. Installation d'Apache Maven
    1. 1. Prérequis : la plate-forme Java
      1. a. Présentation de Java SE
      2. b. Installer le JDK sous Windows
      3. c. Installer le JDK sous GNU/Linux
    2. 2. Installer Apache Maven sous Windows
      1. a. Où le trouver ?
      2. b. Procédure d’installation
    3. 3. Installer Apache Maven sous Linux
      1. a. Où le trouver ?
      2. b. Procédure d’installation
  4. Le POM (Project Object Model)
    1. 1. Présentation
      1. a. Format du fichier pour le POM
      2. b. Exemple de POM minimal
      3. c. Le modèle de données 4.0.0
    2. 2. Le Super POM
  5. Configurer l'installation d'Apache Maven
    1. 1. Qu’est-ce qu’un référentiel (repository)?
    2. 2. Le fichier settings.xml
      1. a. Où le trouver ?
      2. b. Configuration de base
      3. c. Configurer un proxy
    3. 3. Les options de configuration
      1. a. La mémoire allouée à laJVM
      2. b. La résolution des bibliothèqueslogicielles en parallèle
  6. Premières commandes Maven
    1. 1. Valider le POM
    2. 2. Afficher le POM complet
    3. 3. Gérer les erreurs
  7. Maven au cœur de l'infrastructure projet
    1. 1. Présentation du projet "banque"
    2. 2. Spécifications du projet "banque"
      1. a. Les spécifications fonctionnelles
      2. b. Les spécifications techniques
    3. 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. a. Structure d’un projet simple
      2. b. Identifier chaque projet
      3. c. Produire un artefact par projet
    2. 2. Le modèle métier du projet "banque"
      1. a. Présentation du modèle métier
      2. b. Présentation de l’API Java Bean Validation
    3. 3. Créer un projet Maven
      1. a. Créer un projet pour une archive Java
      2. b. Exécuter les tests
    4. 4. Créer l’archive Java (JAR) du projet
  2. Le cycle de vie selon Apache Maven
    1. 1. Qu’est-ce que le cycle de vie d’un projet ?
    2. 2. Le cycle de vie pour le nettoyage du projet
    3. 3. Le cycle de vie par défaut
      1. a. Définition
      2. b. Le cycle de vie par défaut pour le JAR
    4. 4. Exécuter un traitement par un goal ou unephase ?
  3. Le mode commande de Maven
    1. 1. Comment ça marche ?
    2. 2. La syntaxe
    3. 3. Les options principales en détail
      1. a. Les options liées à la configurationApache Maven
      2. b. Les options liées à la sécurité
      3. c. Les options liées aux référentiels
      4. d. Les options pour les interactions avec l’exécuteur
      5. e. Les options liées à la constructiondes projets
    4. 4. Les goals et les phases
  4. Maven et les plugins
    1. 1. Introduction aux plugins
    2. 2. La résolution des plugins
      1. a. Le fichier components.xml
      2. b. Les éléments du POM
    3. 3. Les référentiels pour les plugins
    4. 4. L’appel aux plugins
    5. 5. Configuration des plugins
      1. a. maven-compiler-plugin
      2. b. maven-jar-plugin
    6. 6. Associer le traitement d’un plugin à unephase
      1. a. Configuration par défaut
      2. b. Choisir une phase du cycle
  5. Gérer l'encodage des fichiers d'un projet
    1. 1. Définition de l’encodage
      1. a. ASCII
      2. b. ISO-8859-1
      3. c. CP1252
      4. d. Unicode
      5. e. UTF-8
      6. f. Bilan
    2. 2. Cas concret de problèmes liés à l’encodage
      1. a. Mise en place de l’exemple
      2. b. Contexte de l’exemple
      3. c. Mise en œuvre de l’exemple
      4. d. L’utilité de la configuration Maven
    3. 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 dela gestion des dépendances
      1. a. Les éléments du POM concernés
      2. b. Illustration des dépendances
    2. 2. Les champs d’application (scope) des dépendances
      1. a. Définition
      2. b. Le scope compile
      3. c. Le scope provided
      4. d. Le scope runtime
      5. e. Le scope test
      6. f. Le scope system
      7. g. Le scope import
    3. 3. La persistance du projet banque-persistance
      1. a. Présentation de l’API JPA 2
      2. b. Implémentation de JPA 2
      3. c. Définition de l’injection de dépendancesen Java
      4. d. Apache Maven et l’injection de dépendances
      5. e. Implémentation de l’injection de dépendancesavec Spring Framework
  2. La résolution des dépendances
    1. 1. Comment sont identifiées les dépendances?
      1. a. La transitivité
      2. b. L’influence du scope sur la transitivité desdépendances
      3. c. Les coordonnées complètes d’unedépendance
    2. 2. Gérer les conflits de dépendances
      1. a. Dépendances directes
      2. b. Dépendances transitives
      3. c. Cas concret d’un conflit de dépendances
    3. 3. À quel moment sont résolues lesdépendances ?
  3. L'héritage et les projets multimodules
    1. 1. Présentation des projets banque-metier etbanque-web
    2. 2. Héritage d’un POM commun
      1. a. Le type POM
      2. b. Mise en place du Corporate POM
    3. 3. Organisation des projets en modules
      1. a. Le besoin
      2. b. Définition du reactor
      3. c. Mise en place sur le projet banque
      4. d. Le mode commande adapté au reactor
    4. 4. Choisir une organisation de projets
    5. 5. Organiser les dépendances
      1. a. Factoriser les dépendances
      2. b. Redéfinir une dépendance
      3. c. Centraliser les informations pour les dépendances
      4. d. Centraliser les informations pour les plugins
  4. Les propriétés du POM
    1. 1. Définition
      1. a. Les propriétés disponibles
      2. b. Créer une propriété
      3. c. Les propriétés des plugins
    2. 2. Héritage et interactions des propriétés
      1. a. Propriétés pour les versions
    3. 3. Filtrer les fichiers ressources
      1. a. Gérer la version et la date de constructiondu 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. a. Historique de Java EE
      2. b. Java EE aujourd’hui
    2. 2. Conteneurs Java EE
      1. a. Java EE et projets Apache Maven
      2. b. Apache Tomcat
      3. c. WildFly
    3. 3. Présentation de JAX-WS et JAXB
      1. a. Présentation de JAXB
      2. b. Mise en œuvre de JAXB
      3. c. Présentation de JAX-WS
      4. d. Mise en œuvre de JAX-WS
    4. 4. Le projet de service web et son projet client
      1. a. Le projet de service web : banque-webservice
      2. b. Implémentation du projet de service web :banque-webservice
      3. c. Implémentation du projet de client de serviceweb : banque-client-webservice
  2. Les profils Apache Maven
    1. 1. Présentation générale
      1. a. Pourquoi utiliser les profils ?
    2. 2. Les éléments du POM et du fichiersettings.xml
      1. a. Éléments du profil dans le POM
      2. b. Éléments du profil dans le fichiersettings.xml
    3. 3. Intégrer les profils dans un processus Maven
      1. a. Activer les profils par leurs identifiants
      2. b. Les autres modes d’activation des profils
      3. c. Faut-il activer un profil par défaut ?
  3. Les types d'artefacts pour les projets Apache Maven
    1. 1. Les types d’artefacts par défaut
    2. 2. Les archives pour les applications web (WAR)
      1. a. Présentation
      2. b. Apache Maven et le format WAR
      3. c. Les projets WAR
      4. d. Déployer un WAR dans Apache Tomcat
      5. e. Configurer le POM
    3. 3. Les archives pour les applications d’entreprise (EAR)
      1. a. Présentation
      2. b. Apache Maven et le format EAR
      3. c. Les projets EAR
      4. d. Déployer un EAR pour WildFly
      5. e. Configurer les sous-systèmes de WildFly
    4. 4. Les autres formats d’artefacts
      1. a. Créer un JAR encapsulant ses dépendances
      2. b. Créer une archive ZIP
  4. En résumé
Apache Maven dans un contexte professionnel
  1. Introduction
    1. 1. Le contexte
    2. 2. Qu’est-ce qu’un SNAPSHOT ?
    3. 3. Qu’est-ce qu’une Release ?
  2. Apache Maven et les SCM
    1. 1. Qu’est-ce qu’un SCM ?
    2. 2. Configuration des SCM pour Apache Maven
      1. a. Le plugin maven-scm-plugin
    3. 3. Configuration pour Apache Subversion (SVN)
      1. a. Présentation de Subversion
      2. b. Configuration du projet pour SVN
    4. 4. Configuration pour Git
      1. a. Présentation de Git
      2. b. Configuration du projet pour Git
    5. 5. Maven et le SCM dans un contexte professionnel
  3. Les environnements de développement
    1. 1. Les IDE et Apache Maven
    2. 2. L’environnement de développement Eclipse
      1. a. Présentation
      2. b. Installer Eclipse
      3. c. Configurer Eclipse
      4. d. Installer un plugin Eclipse pour SVN
      5. e. Eclipse et Git
    3. 3. Le support de Maven dans Eclipse : m2eclipse
      1. a. Présentation
      2. b. Configuration
      3. c. Utilisation
  4. Apache Maven et les tests
    1. 1. Introduction aux tests
    2. 2. Les tests unitaires
      1. a. Exécuter un seul test d’une classe de tests
    3. 3. Les tests d’intégration
      1. a. Partager des classes de tests
      2. b. Exécuter les tests d’intégrationavec un container Tomcat
    4. 4. Configurer l’exécution des tests
  5. Les référentiels Apache Maven
    1. 1. Présentation
      1. a. Le référentiel local
      2. b. Les référentiels distants
    2. 2. Cycle de vie et accès aux référentiels
    3. 3. Installation dans un référentiellocal
    4. 4. Déploiement dans un référentieldistant
      1. a. Les protocoles pour le déploiement
      2. b. Déploiement dans les référentielsavec WebDAV
      3. c. Sécuriser les déploiements
      4. d. Bilan
    5. 5. Gestion des artefacts dans le référentiel
      1. a. L’organisation des artefacts en cours de développement
      2. b. L’organisation des artefacts en version Release
      3. c. Les artefacts déployés
      4. d. Purger un référentiel
      5. e. Travailler en mode déconnecté
    6. 6. Les problèmes d’accès réseau
    7. 7. Bilan
  6. Les gestionnaires de référentiels Maven
    1. 1. Présentation
    2. 2. Les avantages
    3. 3. L’infrastructure du projet avec un gestionnaire
    4. 4. Le gestionnaire de référentiels NexusRepository
      1. a. Présentation
      2. b. Installation
      3. c. Configuration
      4. d. Validation
      5. e. Réaliser des traitements automatiséssur les référentiels
  7. L'intégration continue
    1. 1. Introduction
    2. 2. Les avantages de l’intégration continue
    3. 3. Jenkins CI (Continuous Integration)
      1. a. Présentation
      2. b. Installation
      3. c. Configuration
      4. d. Déployer des artefacts dans Nexus Repository
      5. e. Installer un plugin
  8. La phase de livraison du projet : la Release
    1. 1. Introduction
    2. 2. Gestion des numéros de version
      1. a. Définition générale
      2. b. La gestion des numéros de version avec Maven
      3. c. Plugin pour les numéros de version
    3. 3. Processus de Release avec Apache Maven
      1. a. Optimiser la réussite de la Release
    4. 4. Étapes prérequises au processusde Release
      1. a. Vérifier les dépendances
      2. b. Tester les versions SNAPSHOT du projet
      3. c. Valider les paramètres techniques
      4. d. Tester le processus de Release
    5. 5. Release à partir de l’intégrationcontinue
      1. a. Configurer Jenkins
      2. b. Lancer la Release
      3. c. Vérifier le déploiement
      4. d. Bilan
  9. En résumé
Rapports Maven et mesure de la qualité
  1. Présentation des rapports avec Maven 3
    1. 1. Introduction
    2. 2. Les éléments du POM
    3. 3. Configurer l’infrastructure de déploiementdes sites
      1. a. Configuration du serveur web
      2. b. Configurer le Corporate POM et le fichier settings.xml
      3. c. Adapter la configuration à l’infrastructure
    4. 4. Le format des rapports
  2. Générer le site web du projet
    1. 1. Le cycle de vie pour le site du projet
    2. 2. Le plugin de base pour la générationdu site web
  3. Générer les rapports Apache Maven
    1. 1. Rapports liés au code source
      1. a. Introduction et configuration
      2. b. Code source en HTML
      3. c. Documentation du code Java (javadoc)
      4. d. Analyse avec PMD
      5. e. Analyse avec Checkstyle
    2. 2. Rapports sur les tests du projet
      1. a. Rapport d’exécution de tests
      2. b. Rapport de couverture de tests avec Cobertura
      3. c. Rapport de couverture de tests avec JaCoCo
  4. La mesure de la qualité des projets
    1. 1. Qu’est-ce que la mesure de qualité d’un projet?
    2. 2. La mesure de la qualité des projets Mavenavec SonarQube
      1. a. Présentation de SonarQube
      2. b. Installation
      3. c. Configuration de SonarQube
      4. d. Configuration de Maven
  5. En résumé
5/5 1 avis

Super Book, je recommande.

Hermann F
Auteur : Etienne Langlet

Etienne Langlet

Excellent pédagogue, Etienne LANGLET est formateur et consultant depuis plus de 20 ans en développement et méthodologie. Développeur PHP depuis 1999, il développe avec Symfony et dispense des formations sur le sujet depuis près de 10 ans.
En savoir plus
Auteur : Maxime GRÉAU

Maxime GRÉAU

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.
En savoir plus

Nos nouveautés

voir plus