Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    7.10. Conclusion

    Nous avons passé beaucoup de temps sur des sujets ne se rapportant pas directement à Maven pour parcourir tout ce chemin. Nous l'avons fait pour présenter un projet exemple aussi complet et significatif que possible pour que vous puissiez l'utiliser pour réaliser de véritables systèmes. Pour arriver à ce résultat, nous n'avons pas eu besoin de prendre de raccourcis, ni de vous émerveiller avec des tours de magie à la Ruby on Rails, ni de vous laisser croire qu'on peut créer une application Java d'entreprise en "10 minutes ! ". Trop de monde essayent de vous vendre le framework révolutionnaire qui vous demanderait zéro temps d'apprentissage. Ce que nous avons essayé de faire dans ce chapitre est de présenter le tableau dans son intégralité, l'écosystème complet d'un build multimodule. Nous vous avons présenté Maven dans le contexte d'une application qui ressemble à ce que vous pourriez voir dans la vraie vie, et non 10 minutes de vidéo roulant Apache Ant dans la boue et essayant de vous donner envie d'adopter Apache Maven.

    Si vous terminez ce chapitre en vous demandant en quoi il traite de Maven, notre mission est réussie. Nous avons présenté un ensemble complexe de projets en utilisant des frameworks populaires que nous avons assemblés par des build déclaratifs. Le fait que plus de 60% de ce chapitre ait été consacré au fonctionnement de Spring et Hibernate doit montrer que Maven, pour sa plus grosse partie, n'est pas l'étape la plus compliquée d'un projet. Il nous a permis de nous concentrer sur l'application elle-même, et non sur le processus de build. Au lieu de passer du temps à discuter du fonctionnement de Maven et le travail que vous devriez faire pour construire un projet qui intègre Spring et Hibernate, nous avons parlé presque exclusivement des technologies utilisées. Si vous commencez à utiliser Maven et que vous prenez du temps pour l'apprendre, vous commencez vraiment à profiter du fait que vous ne devez pas passer votre temps à écrire vos scripts de build. Vous ne devez pas perdre votre temps à vous inquiéter des aspects classiques de votre build.

    Vous pouvez utiliser le squelette du projet de ce chapitre comme fondation pour votre propre projet. Fondation à laquelle vous ajouterez des modules au fur et à mesure de vos besoins. Par exemple, le véritable projet dont ce chapitre est tiré comporte deux projets modèles, deux modules de persistance qui permettent de stocker des objets dans différents type de base de données, plusieurs applications web et une application Java mobile. Au total, le système du monde réel duquel j'ai tiré cet exemple contient au moins 15 modules interdépendants. Vous avez vu l'exemple de projet multimodule le plus complet que nous allons présenter dans ce livre, notez cependant que cet exemple se contente d'aborder qu'une infime partie de ce qu'il est possible de faire avec Maven.

    7.10.1. Programmation avec des projets API

    Ce chapitre a exploré un projet multimodule qui était plus complexe que l'exemple présenté dans le Chapitre 6, Un projet multimodule, pourtant il s'agit encore d'une simplification par rapport à un vrai projet. Dans un plus grand projet, vous pourriez construire un système ressemblant à la Figure 7.5, « Programmation avec des projets API ».

    Programmation avec des projets API

    Figure 7.5. Programmation avec des projets API


    Quand nous utilisons le terme projet API, nous faisons allusion à un projet Maven qui contient uniquement des interfaces et des constantes. Sur la Figure 7.5, « Programmation avec des projets API », deux des projets sont des projets API : persist-api et parse-api. Si les projets big-command et big-webapp utilisent les interfaces définies dans persist-api, il sera facile de changer d'implémentations et de framework de persistance. Ce diagramme en particulier montre deux implémentations du projet persist-api : une qui stocke ses données dans une base de données XML et l'autre qui stocke ses données dans une base de données relationnelle. Si vous décidez de mettre en place certains des concepts de ce chapitre, vous pourriez réfléchir à comment passer un signal au programme pour permettre de changer d'ApplicationContext Spring et changer ainsi de base de données à la volée. Comme pour la conception OO de l'application elle-même, il est souvent prudent de séparer les interfaces d'une API de leurs implémentations en utilisant des projets Maven séparés.