This book is dedicated to developers that would like to know more about Maven, but anyway the book shows all the features of the tool but without going too in deep.
The language of the book is appropriate and the readability is high, thanks to the fact that each chapter follows the same structure which is based on recipes. The clarity of the basic topics is perhaps the highlight of the book rather than a little lacking compared to more advanced topics of particular interest to all those developers who already know the framework.
The structure of a single recipe in the cookbook consists of: an introduction to the goal of the recipe, a "getting ready" paragraph, an "how to do it" section followed by an "how it works" that concludes each example giving you more details about all the steps executed before.
I have to say that a cookbook dedicated to Maven is a good choice because many times we need to integrate a new tool as Maven and typically the first step is ever very hard to accomplish. The typical big problem is that you have to start thinking about the software lifecycle and not only think just about some goals or commands that you need to use for your software factory.
So Maven needs to have the total control of the software lifecycle and you need to understand very well the core of the tool before starting to adopt it for your projects. During the first part of the book the author shows how to setup the development environment with Maven and describe a good overview about the Maven lifecycle.
I appreciated the second chapter that discusses about techniques in software engineering applied to the Maven build process. I would like to mention the recipe about a first potential TDD project that talks about how developers should start implementing the unit test first and the concrete classes only as the second step. This is a very useful chapter that could open eyes to all of the developers that never had programmed following a modern approach with an acceptance testing automation.
You also will find some useful sections that describe the Maven repository architecture to build your own software factory infrastracture with local and remote repositories. This is very important to decide before starting to arrange your development team, in this way all the new guys in the team will be welcomed in the quickly way because you have the right structure of your architecture.
In the second part of the book the recipes way of the cookbook could not be considered the right way to describe some topics. For example in the section about integration tests you will find only just a single example and sometimes it could be needed to have the availability of more than one.
One of the amazing sections is available to show how to create new projects with Maven using some common frameworks as Spring, Hibernate, Seam, Android SDK and Google Web Toolkit. In the book is described how to use all the available archetypes to create a new standard J2EE application. This section is really useful to setup in a quickly way a project using your preferred framework giving you the opportunity to have a good overview about all the Maven goals available for a specific archetype that uses the framework for your project.
There also is a good chapter about the extensions of the Java language that discusses about how to create a new project dedicated to Scala, Flex and Groovy. In this same case we can find many details about all the goals and commands available for each of these new languages.
I would say that this book is definitely recommended for those unfamiliar with Maven. For all those who do are already familiar with this tool, they may be disappointed by the fact that unfortunately there are not many examples for each of the topics covered in the book but just an unique example.
However, this book can be considered a very important contribution with respect to one of the tools in recent times is going to be talked about.
I would like to thank Packt Publishing to provide me a digital copy of the book.