Overview

Introduction

This module provides a maven parent-pom which can be used to defined artifacts which employ a couple of very useful maven configurations. Out of the box, you get:

  • A maven-enforcer-plugin configuration which will require proper dependency management.

  • A maven-compiler-plugin configuration for java 6, but which will be noisy with warnings so you can fix them.

  • A maven profile called "paranoid" which will also then enable:

    • The maven-pmd-plugin with rules defined in by the pmd-configuration artifact, and which will fail the build if violations are present. This plugin also runs PMD's copy and paste detection (CPD) check.

    • The findbugs-maven-plugin which will run at its highest threshold and attempt to find bugs, failing the build if it does.

    • The cobertura-maven-plugin which will fail the build if test coverage (line or branch) is less than 75% across any of: an individual class; a package; or the entire module.

Usage

Until this artifact is hosted somewhere centrally, you'll need to check it out, and install it locally via the standard "mvn install" command. Something like:

$ mvn install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building common-parent 0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.742s
[INFO] Finished at: Mon May 21 21:21:52 EST 2012
[INFO] Final Memory: 4M/81M
[INFO] ------------------------------------------------------------------------

Once that is done, you can then use this module's artifacts as the parent coordinates for your project:

<parent>
     <groupId>ph.hum</groupId>
     <artifactId>common-parent</artifactId>
     <version>0.1-SNAPSHOT</version>
 </parent>