1. Introduction

Codehaus uses Sonatype Nexus to provide Maven repository hosting service: https://nexus.codehaus.org/. You can deploy snapshots, stage releases, and promote your releases which will be synced to Maven Central. All you need to do is to create a JIRA request and make some POM/settings configuration. This document will guide you step by step.

2. Create a JIRA ticket

Go to Haus Chores and create a Task with:

We will update the ticket when Nexus repository is prepared for you.

3. Maven Repositories

http://nexus.codehaus.org/snapshots/

repository for downloading Codehaus snapshots

https://nexus.codehaus.org/content/repositories/snapshots/

repository for deploying snapshots

https://nexus.codehaus.org/service/local/staging/deploy/maven2/

repository for staging releases

https://nexus.codehaus.org/content/repositories/releases/

repository where staging promotion will go, this repository is synced to Maven Central

https://nexus.codehaus.org/content/groups/public/

repository group which contains snapshots and releases

4. Prerequisites

see Client System Prerequisites

5. Central Sync Requirement

see Central Sync Requirements

6. POM and settings config

Configure your POM to inherit from Codehaus Parent POM:

<project>
  ...
  <parent>
    <groupId>org.codehaus</groupId>
    <artifactId>codehaus-parent</artifactId>
    <version>4</version>
  </parent>
  ...
</project>

Configure your POM's SCM element like this:

<project>
  ...
  <scm>
    <connection>scm:svn:http://svn.codehaus.org/modello/trunk</connection>
    <developerConnection>scm:svn:https://svn.codehaus.org/modello/trunk</developerConnection>
    <url>http://svn.modello.codehaus.org/browse/modello/trunk</url>
  </scm>
  ...
</project>

If you don't use the standard svn layout , you must configure tagBase of maven-release-plugin.

or

<project>
  ...
  <scm>
    <connection>scm:git:git@github.com:juven/git-demo.git</connection>
    <developerConnection>scm:git:git@github.com:juven/git-demo.git</developerConnection>
    <url>git@github.com:juven/git-demo.git</url>
  </scm>
  ...
</project>

Configure your Maven settings.xml:

<settings>
  ...
  <servers>
    <server>
      <id>codehaus-nexus-snapshots</id>
      <username>your-xircles-id</username>
      <password>your-xircles-pwd</password>
    </server>
    <server>
      <id>codehaus-nexus-staging</id>
      <username>your-xircles-id</username>
      <password>your-xircles-pwd</password>
    </server>
  </servers>
  ...
</settings>

If you don't use the standard svn layout , you must configure tagBase of maven-release-plugin.

7. Publish Snapshots

see Publish Snapshots

8. Stage a Release

see Stage a Release

9. Release It

10. Help