• Aide
  • Eurêkoi Eurêkoi

Livre

Apache Maven : maîtrisez l'infrastructure d'un projet Java EE

Résumé

Améliorée grâce aux ajustements suggérés par la communauté d'utilisateurs, la nouvelle version d'Apache Maven offre des fonctionnalités plus poussées qui sont présentées ici. Destiné aux développeurs Java et aux architectes techniques, ce guide présente la mise en oeuvre de ce logiciel pas à pas, jusqu'à sa gestion au sein d'une infrastructure projet. ©Electre 2019


  • Autre(s) auteur(s)
  • Éditeur(s)
  • Date
    • cop. 2019
  • Notes
    • La couv. porte en plus : "En téléchargement : le code source" ; "+ quiz" ; "Informatique technique" ; "Version numérique offerte ! www.editions-eni.fr"
    • La 4e de couv. porte en plus : "Sur www.editions-eni.fr : le code source de l'application exemple du livre"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (400 p.) : ill. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-01953-1
  • Indice
  • Quatrième de couverture
    • Apache Maven

      Maîtrisez l'infrastructure d'un projet Java EE

      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 oeuvre 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 oeuvre 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 oeuvre 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.


  • Tables des matières
      • Apache Maven

      • Maîtrisez l'infrastructure d'un projet Java EE

      • Avant-propos13
      • 1. Public concerné14
      • 2. Prérequis14
      • 3. Objectifs14
      • 4. Organisation du livre15
      • 5. Sur le Web16
      • Chapitre 1
        Présentation d'Apache Maven
      • 1. Qu'est-ce qu'Apache Maven ?17
      • 1.1 Définition17
      • 1.2 Historique18
      • 1.3 Apache Maven sur mon projet ?21
      • 2. La communauté Maven22
      • 2.1 Les acteurs d'Apache Maven22
      • 2.1.1 Des rôles bien définis23
      • 2.1.2 Comment contribuer au projet ?24
      • 2.1.3 L'activité de la communauté25
      • 2.2 Les ressources de références25
      • 3. Installation d'Apache Maven27
      • 3.1 Prérequis : la plate-forme Java27
      • 3.1.1 Présentation de Java SE27
      • 3.1.2 Installer le JDK sous Windows29
      • 3.1.3 Installer le JDK sous GNU/Linux33
      • 3.2 Installer Apache Maven sous Windows35
      • 3.2.1 Où le trouver ?35
      • 3.2.2 Procédure d'installation36
      • 3.3 Installer Apache Maven sous Linux37
      • 3.3.1 Où le trouver ?37
      • 3.3.2 Procédure d'installation37
      • 4. Le POM (Project Object Model)39
      • 4.1 Présentation39
      • 4.1.1 Format du fichier pour le POM39
      • 4.1.2. Exemple de POM minimal39
      • 4.1.3 Le modèle de données 4.0.041
      • 4.2 Le Super POM44
      • 5. Configurer l'installation d'Apache Maven46
      • 5.1 Qu'est-ce qu'un référentiel (repository) ?46
      • 5.2 Le fichier settings.xml47
      • 5.2.1 Où le trouver ?47
      • 5.2.2 Configuration de base48
      • 5.2.3 Configurer un proxy48
      • 5.3 Les options de configuration49
      • 5.3.1 La mémoire allouée à la JVM49
      • 5.3.2 La résolution des bibliothèques logicielles en parallèle50
      • 6. Premières commandes Maven51
      • 6.1 Valider le POM51
      • 6.2 Afficher le POM complet52
      • 6.3 Gérer les erreurs54
      • 7. Maven au coeur de l'infrastructure projet55
      • 7.1 Présentation du projet « banque »55
      • 7.2 Spécifications du projet « banque »57
      • 7.2.1 Les spécifications fonctionnelles57
      • 7.2.2 Les spécifications techniques57
      • 7.3 Objectifs du projet envers Apache Maven59
      • Chapitre 2
        Définition et cycle de vie d'un projet
      • 1. Qu'est-ce qu'un projet Apache Maven ?61
      • 1.1 Description d'un projet Apache Maven61
      • 1.1.1 Structure d'un projet simple62
      • 1.1.2 Identifier chaque projet63
      • 1.1.3 Produire un artefact par projet64
      • 1.2 Le modèle métier du projet « banque »64
      • 1.2.1 Présentation du modèle métier64
      • 1.2.2Présentation de l'API Java Bean Validation65
      • 1.3 Créer un projet Maven67
      • 1.3.1 Créer un projet pour une archive Java67
      • 1.3.2 Exécuter les tests73
      • 1.4 Créer l'archive Java (JAR) du projet73
      • 2. Le cycle de vie selon Apache Maven75
      • 2.1 Qu'est-ce que le cycle de vie d'un projet ?75
      • 2.2 Le cycle de vie pour le nettoyage du projet76
      • 2.3 Le cycle de vie par défaut77
      • 2.3.1 Définition77
      • 2.3.2 Le cycle de vie par défaut pour le JAR79
      • 2.4 Exécuter un traitement par un goal ou une phase ?81
      • 3. Le mode commande de Maven83
      • 3.1 Comment ça marche ?83
      • 3.2 La syntaxe84
      • 3.3 Les options principales en détail84
      • 3.3.1 Les options liées à la configuration Apache Maven85
      • 3.3.2 Les options liées à la sécurité86
      • 3.3.3 Les options liées aux référentiels86
      • 3.3.4 Les options pour les interactions avec l'exécuteur86
      • 3.3.5 Les options liées à la construction des projets87
      • 3.4 Les goals et les phases88
      • 4. Maven et les plugins88
      • 4.1 Introduction aux plugins88
      • 4.2 La résolution des plugins90
      • 4.2.1 Le fichier components.xml90
      • 4.2.2 Les éléments du POM91
      • 4.3 Les référentiels pour les plugins93
      • 4.4 L'appel aux plugins94
      • 4.5 Configuration des plugins95
      • 4.5.1 maven-compiler-plugin95
      • 4.5.2 maven-jar-plugin96
      • 4.6 Associer le traitement d'un plugin à une phase97
      • 4.6.1 Configuration par défaut97
      • 4.6.2 Choisir une phase du cycle100
      • 5. Gérer l'encodage des fichiers d'un projet102
      • 5.1 Définition de l'encodage102
      • 5.1.1 ASCII102
      • 5.1.2 ISO-8859-1103
      • 5.1.3 CP1252103
      • 5.1.4 Unicode103
      • 5.1.5 UTF-8104
      • 5.1.6 Bilan105
      • 5.2 Cas concret de problèmes liés à l'encodage105
      • 5.2.1 Mise en place de l'exemple105
      • 5.2.2 Contexte de l'exemple105
      • 5.2.3 Mise en oeuvre de l'exemple108
      • 5.2.4 L'utilité de la configuration Maven113
      • 5.3 Conclusion114
      • 6. En résumé115
      • Chapitre 3
        Organisation et dépendances des projets
      • 1. La gestion des dépendances117
      • 1.1 Définition et problématiques de la gestion des dépendances117
      • 1.1.1 Les éléments du POM concernés118
      • 1.1.2 Illustration des dépendances119
      • 1.2 Les champs d'application (scope) des dépendances121
      • 1.2.1 Définition121
      • 1.2.2 Le scope compile122
      • 1.2.3 Le scope provided123
      • 1.2.4 Le scope runtime124
      • 1.2.5 Le scope test125
      • 1.2.6 Le scope system125
      • 1.2.7 Le scope import126
      • 1.3 La persistance du projet banque-persistance126
      • 1.3.1 Présentation de l'API JPA 2126
      • 1.3.2 Implémentation de JPA 2127
      • 1.3.3 Définition de l'injection de dépendances en Java129
      • 1.3.4 Apache Maven et l'injection de dépendances130
      • 1.3.5 Implémentation de l'injection de dépendances avec Spring Framework130
      • 2. La résolution des dépendances133
      • 2.1 Comment sont identifiées les dépendances ?133
      • 2.1.1 La transitivité133
      • 2.1.2 L'influence du scope sur la transitivité des dépendances136
      • 2.1.3 Les coordonnées complètes d'une dépendance138
      • 2.2 Gérer les conflits de dépendances138
      • 2.2.1 Dépendances directes139
      • 2.2.2 Dépendances transitives139
      • 2.2.3 Cas concret d'un conflit de dépendances140
      • 2.3 À quel moment sont résolues les dépendances ?145
      • 3. L'héritage et les projets multimodules146
      • 3.1 Présentation des projets banque-metier et banque-web146
      • 3.2 Héritage d'un POM commun147
      • 3.2.1 Le type POM147
      • 3.2.2 Mise en place du Corporate POM148
      • 3.3 Organisation des projets en modules150
      • 3.3.1 Le besoin150
      • 3.3.2 Définition du reactor152
      • 3.3.4 Le mode commande adapté au reactor155
      • 3.4 Choisir une organisation de projets160
      • 3.5 Organiser les dépendances161
      • 3.5.1 Factoriser les dépendances161
      • 3.5.2 Redéfinir une dépendance162
      • 3.5.3 Centraliser les informations pour les dépendances162
      • 3.5.4 Centraliser les informations pour les plugins166
      • 4. Les propriétés du POM168
      • 4.1 Définition168
      • 4.1.1 Les propriétés disponibles169
      • 4.1.2 Créer une propriété169
      • 4.1.3 Les propriétés des plugins170
      • 4.2 Héritage et interactions des propriétés171
      • 4.2.1 Propriétés pour les versions172
      • 4.3 Filtrer les fichiers ressources174
      • 4.3.1 Gérer la version et la date de construction du projet174
      • 5. En résumé176
      • Chapitre 4
        Les artefacts pour Java EE et les profils Maven
      • 1. La plateforme Java EE177
      • 1.1 Introduction à Java EE177
      • 1.1.1 Historique de Java EE178
      • 1.1.2 Java EE aujourd'hui179
      • 1.2 Conteneurs Java EE179
      • 1.2.1 Java EE et projets Apache Maven179
      • 1.2.2 Apache Tomcat180
      • 1.2.3 WildFly184
      • 1.3 Présentation de JAX-WS et JAXB187
      • 1.3.1 Présentation de JAXB187
      • 1.3.2 Mise en oeuvre de JAXB187
      • 1.3.3 Présentation de JAX-WS188
      • 1.3.4 Mise en oeuvre de JAX-WS188
      • 1.4 Le projet de service web et son projet client189
      • 1.4.1 Le projet de service web : banque-webservice189
      • 1.4.2 Implémentation du projet de service web : banque-webservice192
      • 1.4.3 Implémentation du projet de client de service web : banque-client-webservice194
      • 2. Les profils Apache Maven196
      • 2.1 Présentation général196
      • 2.1.1 Pourquoi utiliser les profils ?196
      • 2.2 Les éléments du POM et du fichier settings.xml197
      • 2.2.1 Éléments du profil dans le POM197
      • 2.2.2 Éléments du profil dans le fichier settings.xml198
      • 2.3 Intégrer les profils dans un processus Maven199
      • 2.3.1 Activer les profils par leurs identifiants199
      • 2.3.2 Les autres modes d'activation des profils200
      • 2.3.3 Faut-il activer un profil par défaut ?203
      • 3. Les types d'artefacts pour les projets Apache Maven207
      • 3.1 Les types d'artefacts par défaut207
      • 3.2 Les archives pour les applications web (WAR)208
      • 3.2.1 Présentation208
      • 3.2.2 Apache maven et le format WAR208
      • 3.2.3 Les projets WAR210
      • 3.2.4 Déployer un WAR dans Apache Tomcat213
      • 3.2.5 Configurer le POM214
      • 3.3 Les archives pour les applications d'entreprise (EAR)219
      • 3.3.1 Présentation219
      • 3.3.2 Apache Maven et le format EAR220
      • 3.3.3 Les projets EAR221
      • 3.3.4 Déployer un EAr pour WildFly225
      • 3.3.5 Configurer les sous-systèmes de WildFly230
      • 3.4 Les autres formats d'artefacts232
      • 3.4.1 Créer un JAR encapsulant ses dépendances233
      • 3.4.2 Créer une archive ZIP237
      • 4. En résumé243
      • Chapitre 5
        Apache Maven dans un contexte professionnel
      • 1. Introduction245
      • 1.1 Le contexte245
      • 1.2 Qu'est-ce qu'un SNAPSHOT ?247
      • 1.3 Qu'est-ce qu'une Release ?247
      • 2. Apache Maven et les SCM248
      • 2.1 Qu'est-ce qu'un SCM ?248
      • 2.2 Configuration des SCM pour Apache Maven249
      • 2.2.1 Le plugin maven-scm-plugin250
      • 2.3 Configuration pour Apache Subvension (SVN)251
      • 2.3.1 Présentation de Subvension251
      • 2.3.2 Configuration du projet pour SVN252
      • 2.4 Configuration pour Git255
      • 2.4.1 Présentation de Git255
      • 2.4.2 Configuration du projet pour Git255
      • 2.5 Maven et le SCM dans un contexte professionnel259
      • 3. Les environnements de développement259
      • 3.1 Les IDE et Apache Maven259
      • 3.2 L'environnement de développement Eclipse260
      • 3.2.1 Présentation260
      • 3.2.2 Installer Eclipse260
      • 3.2.3 Configurer Eclipse261
      • 3.2.4 Installer un plugin Eclipse pour SVN265
      • 3.2.5 Eclipse et Git268
      • 3.3 Le support de Maven dans Eclipse : m2eclipse270
      • 3.3.1 Présentation270
      • 3.3.2 Configuration270
      • 3.3.3 Utilisation273
      • 4. Apache Maven et les tests277
      • 4.1 Introduction aux tests277
      • 4.2 Les tests unitaires278
      • 4.2.1 Exécuter un seul test d'une classe de tests278
      • 4.3 Les tests d'intégration280
      • 4.3.1 Partager des classes de tests282
      • 4.3.2 Exécuter les tests d'intégration avec un container Tomcat284
      • 4.4 Configurer l'exécution des tests288
      • 5. Les référentiels Apache Maven288
      • 5.1 Présentation288
      • 5.1.1 Le référentiel local289
      • 5.1.2 Les référentiels distants289
      • 5.2 Cycle de vie et accès aux référentiels292
      • 5.3 Installation dans un référentiel local294
      • 5.4 Déploiement dans un référentiel distant294
      • 5.4.1 Les protocoles pour le déploiement295
      • 5.4.2 Déploiement dans les référentiels avec WebDAV298
      • 5.4.3 Sécuriser les déploiements306
      • 5.4.4 Bilan308
      • 5.5 Gestion des artefacts dans le référentiel309
      • 5.5.1 L'organisation des artefacts en cours de développement309
      • 5.5.2 L'organisation des artefacts en version Release313
      • 5.5.3 Les artefacts déployés314
      • 5.5.4 Purger un référentiel316
      • 5.5.5 Travailler en mode déconnecté317
      • 5.6 Les problèmes d'accès réseau317
      • 5.7 Bilan318
      • 6. Les gestionnaires de référentiels Maven318
      • 6.1 Présentation318
      • 6.2 Les avantages319
      • 6.3 L'infrastructure du projet avec un gestionnaire320
      • 6.4 Le gestionnaire de référentiels Nexus Repository320
      • 6.4.1 Présentation320
      • 6.4.2 Installation321
      • 6.4.3 Configuration324
      • 6.4.4 Validation328
      • 6.4.5 Réaliser des traitements automatisés sur les référentiels328
      • 7. L'intégration continue329
      • 7.1 Introduction329
      • 7.2 Les avantages de l'intégration continue330
      • 7.3 Jenkins CI (Continuous Integration)331
      • 7.3.1 Présentation331
      • 7.3.2 Installation332
      • 7.3.3 Configuration335
      • 7.3.4 Déployer des artefacts dans Nexus Repository337
      • 7.3.5 Installer un plugin337
      • 8. La phase de livraison du projet : la Release338
      • 8.1 Introduction338
      • 8.2 Gestion des numéros de version339
      • 8.2.1 Définition générale339
      • 8.2.2 La gestion des numéros de version avec Maven339
      • 8.2.3 Plugin pour les numéros de version340
      • 8.3 Processus de Release avec Apache Maven341
      • 8.3.1 Optimiser la réussite de la Release342
      • 8.4 Étapes prérequises au processus de Release343
      • 8.4.1 Vérifier les dépendances343
      • 8.4.2 Tester les versions SNAPSHOT du projet344
      • 8.4.3 Valider les paramètres techniques345
      • 8.4.4 Tester le processus de Release346
      • 8.5 Release à partir de l'intégration continue346
      • 8.5.1 Configurer Jenkins346
      • 8.5.2 Lancer la Release347
      • 8.5.3 Vérifier le déploiement347
      • 8.5.4 Bilan348
      • 9. En résumé348
      • Chapitre 6
        Rapports Maven et mesure de la qualité
      • 1. Présentation des rapports avec Maven 3351
      • 1.1 Introduction351
      • 1.2 Les éléments du POM352
      • 1.3 Configurer l'infrastructure de déploiement des sites353
      • 1.3.1 Configuration du serveur web353
      • 1.3.2 Configurer le Corporate POM et le fichier settings.xml355
      • 1.3.3 Adapter la configuration à l'infrastructure356
      • 1.4 Le format des rapports358
      • 2. Générer le site web du projet358
      • 2.1 Le cycle de vie pour le site du projet358
      • 2.2 Le plugin de base pour la génération du site web359
      • 3. Générer les rapports Apache Maven363
      • 3.1 Rapports liés au code source363
      • 3.1.1 Introduction et configuration363
      • 3.1.2 Code source en HTML366
      • 3.1.3 Documentation du code Java (javadoc)368
      • 3.1.4 Analyse avec PMD370
      • 3.1.5 Analyse avec Checkstyle372
      • 3.2 Rapports sur les tests du projet375
      • 3.2.1 Rapport d'exécution de tests375
      • 3.2.2 Rapport de couverture de tests avec Cobertura377
      • 3.2.3 Rapport de couverture de tests avec JaCoCo379
      • 4. La mesure de la qualité des projets382
      • 4.1 Qu'est-ce que la mesure de qualité d'un projet ?382
      • 4.2 Le mesure de la qualité des projets Maven avec SonarQube383
      • 4.2.1 Présentation de SonarQube383
      • 4.2.2 Installation384
      • 4.2.3 Configuration de SonarQube386
      • 4.2.4 Configuration de Maven386
      • 5. En résumé389
      • Index391

  • Origine de la notice:
    • Electre
  • Disponible - 681.225 GRE

    Niveau 3 - Informatique