IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Critique du livre Apache Maven

Date de publication : 17/12/2009

Par Romain Linsolas
 

Voici une critique du livre Apache Maven écrit par Nicolas de Loof et Arnaud Héritier.

29 commentaires Donner une note à l´article (4.5)

               Version PDF (Miroir)   Version hors-ligne (Miroir)

I. Un mot sur les auteurs
I-A. Nicolas de Loof
I-B. Arnaud Héritier
II. Le livre
II-A. Informations
II-B. Composition
II-C. Disponibilité
III. Contenu et critique
III-A. Public visé
III-B. Encore un livre sur Maven ?
III-C. Composition
III-C-1. Premiers pas avec Maven
III-C-2. Maven en entreprise
III-C-3. Encore plus loin avec Maven
III-D. Mon avis
IV. Références
IV-A. Liens
IV-B. Remerciements


I. Un mot sur les auteurs


I-A. Nicolas de Loof

Nicolas de Loof est "techno-veilleur" et architecte Java pour une grande SSII française. Avec 12 ans de développement dans ses bagages, il a rejoint l'équipe de développement de Maven en 2007, en particulier pour le support de GWT. Il crée le BreizhJug (le groupe des utilisateurs de Java, situé à Rennes) en 2008, et participe activement au microcosme Java francophone.

I-B. Arnaud Héritier

Arnaud Héritier est responsable des pratiques et outils de développement chez eXo Platform. Depuis 10 ans, il participe aux développements d'applications en Java que ce soit en tant que programmeur ou architecte. Il contribue à différents projets open source et en particulier à Maven dont il a rejoint l'équipe de développement en 2004, et dont il a intégré le comité de direction en 2005.

II. Le livre


II-A. Informations

Titre Apache Maven
Auteurs Nicolas de Loof et Arnaud Héritier
Préface Jason Van Zyl
Langue Français
Public visé Tous niveaux
Éditeur Pearson

Le livre Apache Maven existe dans deux formats : sous forme de livre et en version électronique (format Acrobat PDF) :

  Version livre Version PDF
ISBN-10 2-7440-2337-X 2-7440-4098-3
ISBN-13 978-2-7440-2337-8 978-2-7440-4098-6
Référence 2337 4098
Nombre de pages 324 318
Format 18,7 x 23 cm  
Prix recommandé 1 32 € 27,20 €
Onix 2 XML XML
1 Prix recommandé sur le site de Pearson.
2 L'ONIX est un format XML standard décrivant un livre.


II-B. Composition

Ce livre est composé de 18 chapitres répartis en trois grandes parties :

  • Premiers pas avec Maven
    • Introduction
    • Au-delà de java.lang
    • Un peu plus que compiler
    • Mettre en place des tests unitaires
    • Mettre en place des tests d'intégration
  • Maven en entreprise
    • Gestion avancée des dépendances
    • Quand le projet devient trop lourd
    • Maven et JEE
    • Maven et les IDE
    • Le jour J : la livraison
  • Encore plus loin avec Maven
    • Utiliser un outil non supporté
    • L'assurance qualité
    • Respecter un format de distribution
    • Un nouveau projet démarre
    • Avons-nous fait le bon choix ?
    • Nos recommandations
    • Épilogue
    • Lexique
Sur le site de Pearson, vous avez la possibilité de lire quelques extraits de ce livre :


II-C. Disponibilité

Le livre est disponible à l'achat sur le site de Pearson sous deux formats : livre papier et livre électronique (format PDF).

Vous pouvez également le commander sur le site d'Amazon, de la Fnac, ou de tout autre site de vente de livres.


III. Contenu et critique


III-A. Public visé

Ce livre s'adresse à un large public, bien qu'il privilégiera plutôt les novices en la matière, ou ceux qui souhaitent avoir une vue d'ensemble de Maven dans une organisation. Parce qu'il consacre également une bonne partie de son contenu à tout ce qui tourne autour de Maven (tests unitaires, suivi de qualité, déploiements, livraisons, etc.), il pourra s'adresser à des personnes connaissant déjà l'outil, ou à ceux qui n'ont pas forcément un niveau technique très poussé (managers, chef de projets, etc.). Les experts de Maven ne sortiront cependant pas de cette lecture avec beaucoup de nouvelles connaissances.


III-B. Encore un livre sur Maven ?

Ce livre traite donc essentiellement de la version 2 de Maven, qui est un outil mature et qui date de 2005. Il existe déjà quelques ouvrages traitant de ce sujet, en particulier "Maven: The Definitive Guide" ou encore "Better Builds with Maven". Comme leurs noms l'indiquent, il s'agit avant tout de livres écrits en anglais, donc pas nécessairement accessibles à tout le monde. Le premier avantage indéniable d'Apache Maven est donc d'être écrit dans la langue de Molière, et devrait donc s'attirer les faveurs de toute personne (francophone) qui souhaite connaître l'outil d'Apache.

Pour être tout à fait complet, on notera que le livre "Maven: The Definitive Guide" vient tout juste d'être traduit en français, "Maven : le guide définitif".

L'autre avantage de cet ouvrage, et c'est là aussi son originalité, est non pas d'exposer les fonctionnalités de Maven à la manière d'une "notice d'utilisation", mais de raconter une histoire, celle d'un projet qui vit et évolue au cours du temps. On suit ainsi les aventures d'une équipe de développement qui va progressivement utiliser Maven au sein de leurs projets. Nous les accompagnons dans différentes situations qui ne manqueront pas de nous rappeler nos propres expériences.
Ainsi, ce qui surprend agréablement dès les premières pages, c'est le ton utilisé par les auteurs. C'est avec un ton léger que Nicolas et Arnaud nous racontent de nombreuses expériences réelles, mettant en scène différents cas d'utilisation de Maven.


III-C. Composition

Comme je l'ai dit plus haut, ce livre est composé de trois grandes parties :

  • Premiers pas avec Maven ;
  • Maven en entreprise ;
  • Encore plus loin avec Maven ;
Voyons maintenant leur contenu un peu plus en détail...


III-C-1. Premiers pas avec Maven

L'histoire débute donc avec un projet, noubliepaslalistedescourses, qui revit après quelques années d'errance. Ce programme, écrit en Java, nous replonge dans nos jeunes années avec pour seul outil de compilation un simple fichier .bat. Voulant remettre ce programme à jour, Arnaud et Nicolas font face à leurs premiers problèmes : comment faire une compilation fonctionnant sur des environnements hétérogènes (Mac d'un côté, Windows de l'autre) ? De même, comment gérer ces dépendances qui sont présentes de façon anarchique dans un répertoire lib ?

L'équipe de développement va très vite grossir, avec l'arrivée de nouvelles têtes, mais aussi de nouvelles idées. Après un court passage par Ant, nos comparses découvrent enfin Maven, et sont conquis par ses premiers atouts : gestion simplifiée des dépendances, cycle de vie de construction d'un projet, etc.

Cette première partie va donc nous montrer les fondamentaux de Maven dans son utilisation au sein d'une équipe en mettant en lumière les fonctionnalités "de base" de l'outil d'Apache :

  • Gestion des dépendances, et leurs versions ;
  • Utilisation de différents JDK, ou d'autres langages (comme Groovy par exemple) ;
  • Création des livrables (le JAR final par exemple) ;
  • Politique de tests, avec les différents types de tests (unitaires, fonctionnels, d'intégration, etc.) ;
  • Mise en place d'une intégration continue.

III-C-2. Maven en entreprise

Maintenant que les premières pièces du puzzle sont mises en place, nos amis abordent des questions plus poussées, des aspects de Maven qui prennent tout leur sens dans un environnement d'entreprise. Ainsi, la première problématique abordée est la gestion avancée des dépendances, et en particulier l'introduction des dépôts d'entreprises (les repositories).

Par la suite, ils s'interrogent sur la façon de simplifier un projet qui prend désormais une certaine ampleur, en divisant le projet en sous-modules, et en utilisant les principes d'héritage et d'agrégation de Maven. Une fois cette étape accomplie, nos chers développeurs concentrent leurs efforts sur la création de livrables un peu plus complexes qu'un "simple" JAR : les projets web (WAR) ou les EJB.

Il est désormais temps de vraiment s'intéresser à l'intégration de tout ceci au sein de leur principal outil : l'IDE (l'environnement de développement). Eclipse, NetBeans ou encore IntelliJ sont donc étudiés par notre équipe afin de connaître la facilité d'utilisation de Maven directement dans l'IDE, et également de soulever les petits plus que chacun de ces outils peut offrir au développeur pour faciliter son travail quotidien.

Cette seconde partie s'achève sur un point crucial de la vie d'un projet : la livraison ! Cette étape est trop souvent bâclée, car parfois réalisée dans l'urgence, ou encore parce que l'intervention humaine - et donc manuelle - tient une place trop importante. Ici, nous abordons ces problématiques et voyons comment Maven peut simplifier, automatiser et fiabiliser ce processus.


III-C-3. Encore plus loin avec Maven

Cette dernière partie aborde différents sujets qui n'ont pas été encore vus dans les chapitres précédents. Tout d'abord, l'équipe étudie la façon de lancer des tâches par Maven alors qu'aucun plugin spécifique n'existe pour cela. Pour faire face à ce problème, on aborde ici deux solutions, l'une axée sur l'intégration d'Ant dans Maven, l'autre sur le développement d'un plugin personnel.

Voici maintenant que l'équipe de développement s'intéresse à un sujet d'actualité : la surveillance de la qualité du code. Là aussi, Maven peut apporter des solutions - essentiellement grâce à des plugins ou à Sonar - et les auteurs ne manquent pas de nous le montrer. C'est également le bon moment pour introduire la fonctionnalité de génération de site - et de rapports techniques - offerte par Maven !

L'équipe, bien agrandie et bien rodée maintenant, souhaite démarrer un nouveau projet. C'est ici l'occasion de voir les recommandations que l'on peut faire sur de nouveaux projets, et non plus de parler de migration de projets existants vers Maven. On passe ainsi en revue certaines bonnes pratiques à mettre en place dès le début d'un projet, on apprend également à utiliser les archetypes de Maven, ces plugins qui nous permettent de créer le squelette d'un projet en fonction de son type.

La société fondée par notre équipe a désormais connu un essor mondial. Nos amis se posent alors une question cruciale : "avons-nous fait le bon choix ?". C'est ici que l'on fait une sorte de bilan, de savoir si finalement Maven est véritablement l'outil à utiliser au sein de nos projets, d'en définir les limitations et les problèmes. Les auteurs nous parlent ensuite de l'écosystème autour de Maven : ses concurrents (Ant, Ivy et Gradle en première ligne), les sociétés qui gravitent autour de l'outil (en particulier Sonatype), etc. Enfin, on termine avec quelques pages nous montrant les nouveautés de Maven 3.

Avant de conclure cet ouvrage, les auteurs décident de nous offrir leurs recommandations vis-à-vis de l'utilisation de Maven, leurs 10 commandements. Un conseil : lisez-les et surtout respectez-les !


III-D. Mon avis

Apache Maven est un livre plutôt atypique. Il doit s'aborder plus comme un roman que comme un livre technique traditionnel, et ne doit pas être pris pour une sorte de "bible" sur l'outil d'Apache. Le fait que Nicolas et Arnaud aient abordé le sujet de Maven en racontant la vie et l'évolution d'une équipe de développement est une excellente idée, car cela nous montre un usage très réel et concret de cet outil. Cela nous permet également de voir tous les à-côtés qui ne sont habituellement pas traités par des ouvrages informatiques sur un outil. Ici, au-delà de Maven, les auteurs évoquent le TDD (Test Driven Development ou Développement piloté par les tests), les différentes façons de tester son application, le suivi de qualité, l'intégration continue, l'aspect livraison, les bonnes et mauvaises pratiques en général, etc. C'est forcément un autre bon point pour ce livre !

Alors certes mon niveau en Maven, qui est plutôt bon, ne m'a pas permis de sortir de cette lecture avec beaucoup de nouvelles informations. Toutefois, cela m'a permis de me conforter dans mes idées, d'assurer mes bonnes pratiques, et d'apprendre quelques astuces plutôt sympathiques. Le fait que ce livre aborde vraiment tous les aspects de la vie d'un projet est un énorme plus, et pourra, à mon avis, intéresser des personnes n'ayant pas un profil de développeur !

Selon moi, ce livre doit être vu comme un indispensable complément à une "bible" Maven par exemple Maven: The Definitive Guide, d'autant que ce dernier vient tout juste d'être traduit en français.


J'ai aimé ! Je n'ai pas aimé !
Enfin un livre en français sur Maven ! Ce n'est pas LA "bible" sur Maven, certains aspects très pointus ne sont pas abordés.
Le ton léger, très agréable à lire. N'apprendra pas forcément beaucoup aux personnes rodées à Maven.
Beaucoup de retours d'expériences, de cas réels.  
Les sujets connexes abordés par les auteurs.  

IV. Références


IV-A. Liens


IV-B. Remerciements

Tout d'abord, je remercie les éditions Pearson de m'avoir permis de réaliser cette critique.
Ensuite, bien sûr, je remercie Nicolas de Loof et Arnaud Héritier pour leur excellent travail sur cet ouvrage.
Je remercie également Eric (alias Ricky81) d'avoir pensé à moi pour ce travail, mais également pour ses commentaires.
Merci enfin à Wachter pour sa relecture.



               Version PDF (Miroir)   Version hors-ligne (Miroir)

Valid XHTML 1.0 TransitionalValid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.