Menu

OSSRH Migration

OSSRH Migration

PLDoc project artefacts were synchronised to the Maven Central repository from Sourceforge using rsync.

This approach did not scale and was phased out : PLDoc synchronisation ceased sometime after August 2012 and would not be reactivated.

The recommended approach is to deploy artefacts via an intermediate Maven OSS Sonatype remote hosting :
PLDoc was migrated to this method in March 2013.

The migration steps are detailed below.

pom.xml

Remove release repositories from pom.xml:

<distributionManagement>
<!--
    <repository>
        <id>release.pldoc.sf.net</id>
        <name>PLDoc Release Repository</name>
        <url>sftp://web.sourceforge.net/home/project-web/pldoc/htdocs/m2/</url>
    </repository>
    <snapshotRepository>
        <id>snapshot.pldoc.sf.net</id>
        <name>PLDoc Snapshot Repository</name>
        <url>sftp://web.sourceforge.net/home/project-web/pldoc/htdocs/m2-snapshot/</url>
    </snapshotRepository>
    -->
    <site>
        <id>site.pldoc.sf.net</id>
        <name>PLDoc Site</name>
        <url>scp://shell.sourceforge.net/home/project-web/pldoc/htdocs/maven-site/</url>
    </site>
</distributionManagement>

Add parent settings to pom.xml (adds Sonatype OSSRH staging and release repositories and GPG plugin and appropriate options)

<parent>
  <groupId>org.sonatype.oss</groupId>
  <artifactId>oss-parent</artifactId>
  <version>7</version>
</parent>

Maven Settings - settings.xml

Add Sonatype servers to settings:

    <server>
      <id>sonatype-nexus-snapshots</id>
      <username>sturton</username>
      <password>password</password>
    </server>
    <server>
      <id>sonatype-nexus-staging</id>
      <username>sturton</username>
      <password>password</password>
    </server>

Add gpg profile to settings, active by default:

    <profile>
      <id>gpg</id>
        <properties>
          <gpg.executable>gpg</gpg.executable>
          <gpg.keyname>keyname</gpg.keyname>
          <!--gpg.passphrase>passphrase</gpg.passphrase-->
          <gpg.useAgent>true</gpg.useAgent>
        </properties>
</profile>
...
<activeProfiles>
  ...
  <activeProfile>gpg</activeProfile>
  ...
</activeProfiles>

Site

Alter Downloads page of the documentation to refer to the new artefact locations.

Test Release Process

mvn release:prepare

Specifyimg the gpg.passphrase on the command-line or in settings.xml did not seem to work.

Left out, the user is prompted for passphrase once (because of the gpg.useAgent setting)

mvn release:perform

After the release has been performed, the staged artefacts are in a open Staging repository: multiple releases will be staged in the staging repository until the repository is Closed or Dropped.

In order to complete the release to Maven central, perform these steps:-

  1. Log in to Sonatype OSS
  2. Close the new staging repository
  3. Release the closed repository

The released repository contents should appear in the Maven Central repository (search.maven.org) within 2 hours.


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.