Il se compose de 9 chapitres :
- Une introduction aux concepts et à l'utilisation d'Apache Maven 3
Ce premier chapitre est une introduction 'classique' à la mise en place et la configuration d'Apache Maven 3 sur un poste de développement.
- Les techniques d’ingénierie logicielle
Ce chapitre parle des bonnes pratiques de développement d'un logiciel et de l'utilisation de Maven dans un tel contexte. On y parle de TDD, de qualité de code et de gestion des dépendances et comment Apache Maven facilite cette mise en œuvre. On pourra regretter le choix de PMD pour la qualité logicielle plutôt que d’un outil plus complet comme Sonar.
- Les principes agiles de développement et de collaboration
L'auteur explique ici comment intégrer Apache Maven dans votre organisation avec un gestionnaire de dépôts, un serveur d'intégration continue, ... Bref comment tirer un profit maximum des outils autour de Maven pour développer vos logiciels.
- Rapports et documentationNous découvrons l'usage des taches de reporting d'Apache Maven pour produire un site statique, de la Javadoc et plusieurs autres rapports. On pourra regretter le fait que les POM montrés utilisent la vieille forme de configuration d'Apache Maven 2.x et non ce qui est spécifique à Apache Maven 3.
- Développement Java avec Maven
On voit ici comment produire un squelette pour chaque type de projet Java d'entreprise :
- application Web et comment l'exécuter avec Jetty
- pour J2EE : archetype
- pour Spring : on construit un vrai projet Spring
- pour Hibernate : utilisation du hibernate3-maven-plugin
- Seam avec Seam Forge : projet Maven de generation de code
- Développement Google avec Maven
C'est pour moi le chapitre le plus intéressant car on y voit comment Apache Maven permet de développer dans le monde des technologies Google : Android, GWT et GAE (Google App Engine).
Android : comment configurer son environnement pour développer et déployer une application Android.
GWT : Là encore comment configurer son poste pour créer et tester (que ça soit avec l'outil de test intégrer ou Selenium) une application web GWT.
GAE : comment utiliser la plate forme de cloud de Google et les différents archétypes disponibles pour construire vos applications. - Scala, Groovy et Flex
Si pour Scala il existe l'outil Simple Build Tool, celui-ci est destiné aux projets Scala purs, si vous mélangez Scala et Java utilisez Maven et ses archétypes.
Groovy fournit un archétype et un plugin gmaven qui permet aussi l'exécution des scripts Groovy et l'utilisation de la console et du shell Groovy.
Enfin pour le troisième langage, Flex, nous découvrons flexmojo qui permet de produire la structure d'un projet Flex type ainsi que la documentation de ce plugin. - Intégration dans un EDI
Les EDI modernes (Netbeans, Elipse, Intellij IDEA) offrent une excellente intégration d'Apache Maven. Chaque EDI est présenté ainsi qu e sa manière d'intégrer Apache Maven et d'importer un projet Apache Maven dans l'outil.
- Étendre Apache Maven avec vos plugins
Apache Maven est extensible au moyen de plugins. Nous voyons ici comment créer un plugin en Java mais aussi les autres manières d'en faire en utilisant des scripts Apache Ant ou Ruby avec JRuby.