Fork me on GitHub

Parent POM for 1-and-1 open source projects.

Contains common configuration for projects that use github and Sonatype OSS Repository Hosting. Default License is Apache 2.0.

Build Status Build Status Release GitHub license

How to use the POM

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>net.oneandone.maven.poms</groupId>
        <artifactId>foss-parent</artifactId>
        <version>1.6.1</version>
    </parent>
    <groupId>sample-groupId</groupId>
    <artifactId>sample-project</artifactId>
    <version>1-SNAPSHOT</version>
    [...]
</project>

Latest releases

… may be found at Maven Central.

Rules for versions

  • Major version bump for cases where the user of the pom MUST change or add stuff in her project (new file is needed, plugin or dependency not defined in the pomanymore)
  • Minor version bump for cases where versions of managed dependencies or managed plugins receive a major update so most of the times a quick fix would be to freeze the versions of the aforementioned dependencies or plugins in the project’s pom. This includes additions of managed plugins or dependencies as well.
  • Micro version bump for cases where where versions of managed dependencies or managed plugins receive a minor update.

Releasing a project

… to Maven Central via Sonatype OSS Repository Hosting:

  • add the following to your settings:
<settings>
  <servers>
    <server>
      <id>sonatype-nexus-snapshots</id>
      <username>sonatype-user</username>
      <password>sonatype-pwd</password>
    </server>
    <server>
      <id>sonatype-nexus-staging</id>
      <username>sonatype-user</username>
      <password>sonatype-pwd</password>
    </server>
  </servers>
</settings>

TODO: http://www.sonatype.com/books/nexus-book/reference/staging-sect-managing-plugin.html

Deploy site to github

To deploy a site to github using maven-scm-publish-plugin:

  • Add a new branch gh-pages manually.
  • Add src/site/resources/.nojekyll to add hidden files (e.g. for jacoco) as well.
  • Run mvn clean verify site site:stage scm-publish:publish-scm -Dscmpublish.content=target/staging/ARTIFACTID.

Adjust license headers

mvn license:format