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