During this weekend, i spent my whole day on this book and it did bring a lot surprise for me. I’m always thought on Maven is just another “Ant” plus library dependency tool, however this book clear my perception and uncover many Maven’s feature which i do not aware of. This is more like a practical book or workbook, by building up a sample Maven style application, follow by how to integrate Maven with Apache Archiva (Repositiory manager) and Continuum (CI Server).
The Maven’s integration part (CI and repository) always is a missing manual in many similar Maven’s book; I would say this book did a very good job on exploring this area.
The chapter 4 and 5 are introduced many useful code coverage, static analysis, bug finding tools , which are definitely bring many benefits in our projects. Actually I used to integrate those reports in my Hudson continuous build server; I never thought Maven has the same ability to do so.
The chapter 7 also provides many Maven tips and tricks, best practices which are quite useful.
The chapter 8 and 9 is introducing about the Continuum (CI Server), I do not want to make any comments on it, since I’m using Hudson all the time and quite satisfied with it. However it’s worth for me to try this CI in my future project ?
The last chapter is really provides something I do not know totally, it mention about how to integrate the security in Archive and Continuum, which I believed this is a very important features in corporate environment.
Book In Detail
Chapter 1: Maven in Nutshell
Maven introduction, quick but comprehensive
Skills learn:
1) How to install and configure the Maven in your development machine.
2) How to create a new project in Maven, compile it, run unit test and deploy it with Maven
3) How to add the dependency library and plug-ins in Maven
Chapter 2: Staying in Control with Archiva
Archiva is a good repository manager for Maven, here talks about the importance and basic usage of it. There are a more advance topics on Chapter 10
Skills learn:
1) How to install and configure the Apache Archiva
2) How to set up the Archiva’s proxy and repository
3) How to integrate it with Maven
Chapter 3: Building an Application Using Maven
A pratical guide on creating a multi modules sample application, this sample will use in the rest of the chapters
Skills learn:
1) How to create and organize POM file
2) How to set up a multi-modules build, and why
3) How to generate the runtime environment with App Assembler plugin
Chapter 4: Application Testing with Maven
Brief introduce about what is Unit testing, integration test, functional test and etc, and how to implement it in Maven.
Skills learn:
1) How to use the Maven’s surefire plugin to run the test and check the repor
2) How to use TestNG as alternative
3) How to use code coverage tools like EMMA, and integrate it with Maven
Chapter 5: Reporting and Checks
This chapter is my favor chapter, it’s introduces many useful and practical static analysis and bugs finding tools, and how to integrate those reports with Maven.
Skills learn:
1) How to add reports to your projects.
2) Know many quality checking tools and reporting, e.g PMD, CheckStyle , FindBugs, Clirr and etc
3) How to use dashboard plugin to group all together
Chapter 6: Useful Maven Plugins
Introduce and “how to” example on few popular and useful Maven plugins , you may be using one of these as well ?
Skills learn:
1) Remote resources plugin
2) Build Number plugin
3) Shade plugin
4) Build Helper plugin
5) AntRun plugin
6) Exec plugin
Chapter 7: Maven Best Practices
Mavens’ tips, tricks and best practices ~
Skills learn:
1) How to encrypt the server passwords.
2) Using convention, inheritance and decomposing the build into modules
3) How to make your builds portable
4) Many others Maven’s best practices….
Chapter 8: Continuum: Ensuring the Health of your Source Code
The Continuum Continuous integration server, what is it and why it’s importance in software development?
Skills learn:
1) Installation and set up project in Continuum
2) How to Integrate it with Maven
Chapter 9: Continuum in Depth
Another chapter for Continuum, provide more advance topics.
Skills learn:
1) How to deal with releasing projects (different phases)
2) How to build multiple projects and implement the parallel builds and distributed builds
3) Some maintenance tasks on Continuum
Chapter 10: Archiva in a Team
A Practical guides on implement the Archiva in your team.
Skills learn:
1) How to control access to a repository
2) How to set up the RSS feed to discover the new artifacts
3) How to use the Archiva reporting feature
4) Some maintenance tasks on Archiva
Chapter 11: Archetypes covers Maven archetypes
A comprehensive guide on Maven’s Archetype
Skills learn:
1) What’s it and what’s benefits
2) Different type of archetypes available
3) How to create a custom archetype
Chapter 12: Maven, Archiva, and Continuum in the Enterprise
Introduces the security on Maven, Archiva, and Continuum and how it implements in corporate environment.
Skills learn:
1) How to integrate the security Redback , LDAP in Archiva and Continuum
2) How to integrate other tools via Archiva and Continuum web service
Conclusion
The overall is very good and useful; this book really provided something the book’s title promised “Maven 2: effective implementation”. I would highly recommend this book “The Maven 2: Effective Implementation” to all Java developers who want to learn about the Maven and understanding how it work with Apache Archiva (Repositiory manager) and Continuum (CI Server), it’s a exactly how Maven’s project implemented in corporate environment look like.



