2009-12-13

Book Review: Apache Maven 2 Effective Implementation


Apache Maven 2 Effective Implementation
Brett Porter and Maria Odea Ching
Packt Publishing
ISBN: 1847194540

My Rating: 7 out of 10

Apache Maven 2 Effective Implementation is an introduction to using Apache Maven 2 and, to a lesser extent, Apache Archiva and Apache Continuum. The book provides a basic introduction to using Apache Maven 2 as a build tool for application development. The audience of the book is Java developers with moderate to no experience with Maven 2.

Effective Implementation kicks off with a quick introduction to Maven basics by setting up a build for a simple web application (a Java EE WAR). This introduction is quite good and does provide the reader with enough information in a relatively small number of pages to be effective, without going overboard.

The second chapter jumps into installing and using Archiva with Maven. I found this chapter to be awkward and confusing. The chapter seems to be intended to introduce the general concept of Maven Repositories and Repository Managers, but seems to miss he mark. Most of the chapter is wasted on installing and setting up Archiva.

Chapters three through six make up for the slight stumble by providing a thorough and representative use of Maven in a more practical example application. Chapter three initiates a set of projects and works through the basics of building with Maven. Chapter four guides the reader through testing with Maven with the projects started in Chapter three. Chapter five works through the possibilities of documentation and reporting with Maven. The sixth chapter provides an overview of interesting Maven plugins that can be utilized to provide commonly requested features for builds, testing and reporting. For those without any Maven experience, these chapters provide a good overview of day-to-day Maven use and a number of tips and insights to make Maven more usable and productive.

Chapter seven, Maven Best Practices, is a mishmash of various tips and tricks that didn't fit into the narrative of the proceeding chapter. As a long-time Maven user, I found this chapter the most interesting, as there were a few hidden secrets that I learned about.

The remaining chapters are mostly focused on Archiva and Continuum. Though interesting and containing a few nuggets of value, they're mostly bogged down by more trivial content -- setting up this, tweaking that. This quickly gets tedious and tends to induce skimming, which means that some of the good bits are missed. I think some of the content in these chapters could have been pulled into the appendices, where could then referenced when actually needed. An external reference web site would also work well.

There are a few appendices, though I think the first two could have just been chapters themselves, especially the Troubleshooting Maven appendix. The Recent Maven Features probably could have been matched up with chapters three, four, five and six as an advanced features chapter. The third appendix Migrating Archiva and Continuum Data is a good example of an appendix and a template for factoring out the administrative content I mentioned previously.

Overall, Apache Maven 2 Effective Implementation is a good introduction to Maven and provides a great reference for getting new and recently new users of Maven. For those with some Maven experience already, there are still a few good bits of insight. For those interested in going beyond Maven and using Archiva and Continuum to take the next step in automation, there's definitely plenty of good content on getting all three to work together.

Disclosure: I am a member of the Apache Software Foundation, a committer and PMC member of the Apache Harmony project and I have contributed a few patches to the Apache Maven project.

No comments: