Review : Apache Maven 2 Effective Implementation

During this weekend, I spent my whole day on this book and it did bring a lot surprise for me. I’m always thinking on Maven is just another “Ant” plus library dependency tool, however this book clear my perception and uncover many Maven’s features 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 (repository manager) and Continuum (CI Server).

The Maven’s integration part (CI and repository) has always been a missing manual in many similar Maven’s books; I would say this book did a very good job of exploring this area.

The chapter 4 and 5 are introduced many useful code coverage, static analysis, bug finding tools , which are definitely bringing 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 mentions about how to integrate the security in the Archive and Continuum, which I believed this is a very important feature in corporate environment.

Chapter 1: Maven in Nutshell

Maven introduction, quick but comprehensive

Skills are learned:

  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 is a more advanced topic in Chapter 10

Skills are learned:

  1. How to install and configure the Apache Archiva
  2. How to set up the Archiva’s proxy and the repository
  3. How to integrate it with Maven

Chapter 3: Building an Application Using Maven

A practical guide on creating a multi module sample application, this sample will use in the rest of the chapters

Skills are learned:

  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 the 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 are learned:

  1. How to use the Maven’s surefire plugin to run the test and check the report
  2. How to use TestNG as an alternative
  3. How to use code coverage tools like EMMA, and integrate it with Maven

Chapter 5: Reporting and Checks

This chapter is my favorite chapter, it’s introduces many useful and practical static analysis and bug finding tools, and how to integrate those reports with Maven.

Skills are learned:

  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 the 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 are learned:

  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 are learned:

  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 is importance in software development?

Skills are learned:

  1. Installation and set up a project in Continuum
  2. How to Integrate it with Maven

Chapter 9: Continuum in Depth

Another chapter for Continuum, provide more advanced topics.

Skills are learned:

  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 for implementing the Archiva in your team.

Skills are learned:

  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 are learned:

  1. What’s it and what 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 are learned:

  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 recommend this book “The Maven 2: Effective Implementation” to all Java developers who want to learn about 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.

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

avatar