Skip to content

Publish to Maven Central Repository

Benjamin Possolo edited this page Nov 28, 2023 · 9 revisions

Publish to Sonatype OSSRH and Maven Central Repository

Create a ~/.m2/settings.xml file with the following contents:

<settings>
  <servers>
    <server>
      <id>ossrh</id>
      <username>YOUR_OSSRH_USERNAME</username>
      <password>YOUR_OSSRH_PASSWORD</password>
    </server>
  </servers>

  <profiles>
    <profile>
      <id>ossrh</id>
      <properties>
        <gpg.keyname>YOUR_GPG_KEY_ID</gpg.keyname>
        <gpg.executable>GPG_EXECUTABLE</gpg.executable>
        <gpg.passphrase>YOUR_KEY_PASSPHRASE</gpg.passphrase>
      </properties>
    </profile>
  </profiles>
</settings>

On Mac OS X, the gpg.executable property should be either gpg or gpg2.

Instructions for Build/Deploy/Release

  1. bump pom.xml version to non-snapshot version
  2. commit and push to github
  3. mvn clean deploy -P ossrh
  4. enter your gpg key passphrase when prompted
  5. log in to Sonatype OSSRH
  6. click Staging Repositories
  7. find the release comgithubua-parser-*
  8. verify the contents are ok
  9. click Close (wait for validation steps under the Activity tab to complete)
  10. click Release
  11. create git tag git tag v1.6.1
  12. push tag to GitHub git push origin --tags
  13. bump pom.xml version to next snapshot version
  14. commit and push to GitHub
  15. update changelog wiki page
  16. update versions in README.md
  17. create GitHub release using the new tag & include changelog entries in release description

Additional Resources for Deploying to Sonatype OSSRH and Maven Central Repository

Deploying to Sonatype OSSRH using Maven
Releasing the artifact in Sonatype OSSRH

Sonatype OSSRH is synced with Maven Central Repository so the artifacts will appear in Maven Central Repo automatically shortly after releasing.

FAQ

error gpg: signing failed: Inappropriate ioctl for device when building/deploying artifact to Sonatype add the following to your .bash_profile

GPG_TTY=$(tty)
export GPG_TTY