Skip to content
Switch branches/tags

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Codacy Badge Maven Site Maven Central

Base Maven projects to get most the good stuff with minimal config on your part.

  • takari-lifecycle for incremental builds (now disabled by default as m2e-apt is fully capable of handle APT in eclipse).
  • Checkstyle (google-like).
  • PMD (overrideable, simple, example config).
  • maven web site generation.
  • site publishing to back to github pages.
  • BSD-3 or MIT licenses checking/formating (you can easily add your own).
  • jar file deployment to
  • comparisons against old versions of your jar for binary compatibility. (Packages including the word ".internal." are skipped.

Cloned from with some renaming and cleanup

To use add to your maven project's pom.xml file:


        <github.owner>YOUR GITHUB GROUP OR USER</github.owner>
        <github.project>YOUR GITHUB PROJECT</github.project>
        <!-- set the below parameter to false once you've cut your first release and you want semantic verion checking -->

Every child pom (module) of that pom should have a property of:


So that a multimodule project can publish it's sites back to github pages.

To release the website, you will need a github token to allow maven to push the site content back to git in your .m2/settings.xml. To release artifacts to oss nexus you'll need credentials and and a server section to your .m2/settings.xml. See example at the end of this file.

PMD, checkstyle (close to google's style) and a BSD-3 license are set by default, as is the use of takari-lifecycle, for incremental build and proper APT support in eclipse.

Configuration options

    <!-- explained above -->
    <!-- these are currently set to use github, no need to touch -->
    <!-- regex to pass to checkstyle based on your selection -->
    <!-- set to UTF-8 by default, no need to touch -->
    <!-- points to the example, google like checkstyle in Static Analysis jar -->
    <!-- explained above -->
    <!-- set for deploying to OSS nexus, no need to touch unless you want to use the staging repos -->
    <!-- a comma separated list of groupId:artifactId's of plugins you don't mind having as snapshots -- best used in development of plugins only -->
    <!-- minimum version of java to run maven, default 1.8.0 -->
    <!-- minimum version of maven, to run this project default 3.5.0 -->
    <!-- can be used to turn off github site deployment -->
    <!-- can be used to enforce code coverage -->
    <!-- currently set to ignore all packages containing an ".internal." segement.
    <!-- this is where you select one of licenses above.
           license.regex.BSD-3 or
           license.regex.CONFIDENTIAL or
           for example:
    <!-- select a license for license:format, should match the license above. Select between: BSD-3, MIT, CONFIDENTIAL -->
    <!-- owasp security plugin, non need to change -->
    <!-- instructs pmd to perform incremental analysis -->
    <!-- should a pmd violation fail the buid -->
    <!-- pmd config, touch if you want to change. -->
    <!-- if using github site deploy, leave this set to true.
    <!-- should takari handle apt processing, and if so, should it always regenerate, 'proc' or 'procEX' 
         proc is default and indicates incremental processing.
         procEX means full processing on every invocation.
    <!-- sets source encoding to UTF-8, override if you wish -->
    <!-- versions of plugins and support jars, no need to touch -->

When releasing a new version of this project:

  • mvn versions:set
  • update the version of MavenAnalysisConf in MavenParent pom file
  • update src/site/site.xml version of MavenAnalysisConf

Add credentials in your ~/.m2/settings.xml like:

    <!-- if you also will be deploying open source projects, and have an account at
       then include this section -->
      <username><!-- REPLACE WITH TOKEN FROM --></username>
      <password><!-- REPLACE WITH TOKEN FROM --></password>

Note on Mac/Linux since gpg 2.1+, you'll want to assert your gpg tty is set, so deploy like:

mvn clean deploy -Dgpg.useagent=true
export GPG_TTY=$(tty)

When deploying a maven generated site to

mvn site site-deploy

First create a personal access key in with the following permissions:

  • public_repo
  • read:enterprise
  • read:org
  • read:user
  • user:email

and a section in your ~/.m2/settings.xml like:

      <password><!-- REPLACE WITH TOKEN FROM --></password>