Skip to main content

Upgrading to Nexus Repository 3.71.0 and Beyond

Nexus Repository 3.70.x release branch are the final releases to support the embedded OrientDB database and Java versions 8 and 11. Before updating to a release after 3.70.x, you must migrate off from the Orient database while upgrading Java. Support for OrientDB is sunsetted and is no longer included in Nexus Repository versions 3.71.0 and beyond.

See Determining the Current Database

Upgrade Paths

The table below provides a brief overview of the upgrade process based on your current database.

Database

Upgrade Overview

PostgreSQL

  1. Upgrade to Java 17

  2. Follow normal Nexus Repository upgrade procedures

H2

  1. Upgrade to 3.69.0

  2. Export your database with the Admin - Export SQL database to script task

  3. Upgrade to Java 17

  4. Follow normal Nexus Repository upgrade procedures

OrientDB

  1. Upgrade to the latest 3.70.x version

  2. Migrate to an H2 or PostgreSQL database* using the 3.70.x Database Migrator that matches your Nexus Repository version

  3. Upgrade to Java 17

  4. Follow normal Nexus Repository upgrade procedures

* Note that migrating to a PostgreSQL database with version 3.70.x requires a Pro license. Non-pro deployments will need to migrate to H2 on version 3.70.x and can migrate to PostgreSQL after upgrading to Nexus Repository version 3.77.x or later.

Nexus Repository Deployments Using OrientDB

Nexus Repository no longer includes OrientDB in versions after 3.70.x. We recommend Professional user deployments migrate to Postgres. Community Edition users must migrate to H2 database before they can upgrade to Postgres database starting after the 3.77.0 release.

Orient_369_java811.png
  1. Upgrade to the Latest Nexus Repository 3.70.x Release

    Upgrade to the latest branch of version 3.70.x using the standard upgrade procedures. Start the instance before proceeding to ensure everything works as expected.

    As OrientDB does not support Java 17, continue to use Java 8 or 11 until after the database migration.

    See Final Orient Release Download

    This includes the migrator version to use for the next step.

  2. Use the Database Migrator to switch to the database

    Nexus Repository Pro deployments may switch directly to using PostgreSQL. Community Edition users must use the H2 database until upgrading to a Nexus Repository version after the 3.77.0 release. We recommend using Postgres in production deployments.

    See Migrating to a New Database

  3. Upgrade your Java version before upgrading to 3.71.0 or later.

    Upgrade your Nexus Repository instance to the 3.71.0 release or greater. During this upgrade, update your Java version to Java 17 as later versions of Nexus Repository do not support Java 8 or 11.

    Download the correct distribution to switch to a different java version. These distributions include configuration aligned to the supported Java version.

    See Upgrade Nexus Repository Java Version

Nexus Repository Deployments Using H2

Nexus Repository versions from 3.70.0 and beyond require a version 2.x H2 database; previous Nexus Repository versions used a version 1.x database. Therefore, you will need to run a task to export your H2 v1.x database before upgrading Nexus Repository. Sonatype added this task in version 3.69.0, so you must be on 3.69.0 before proceeding. The sections below will walk you through this process.

The internal H2 database used by Nexus Repository was updated in the 3.71.0 release. This upgrade workflow requires exporting the H2 database using a special task available in the 3.69.0 release before upgrading. Support for Java 17 was introduced in the 3.69.0 release and is required for all future releases.

H2_Pre368_Java811.png
  1. Upgrade to the Nexus Repository 3.69.0 Release

    This step is required to create the files to use during the internal H2 upgrade and is the first supported version of Java 17.

    See Download Archives

  2. Upgrade to Java 17

    The Sonatype team provides alternate distribution binaries and the required nexus.vmoptions configuration to align with the supported Java version. You must download the correct distribution to switch to a different java version.

    Set the Java path in the bin/nexus script. Uncomment and update the INSTALL4J_JAVA_HOME_OVERRIDE property. Java is embedded in later distributions of Nexus Repository where this override method is no longer recommended or used.

  3. Export the H2 database

    Changes made in Nexus Repository after exporting the database are not included in the new instance. We recommend limiting access to the repository at this point until the upgrade is complete.

    Running the Admin - Export SQL database to script task outputs a file called nexus-<timestamp>.sql to the $data-dir/db folder. This file is used to migrate the H2 database during the upgrade to the 3.71.0 or later releases.

  4. Upgrade to the latest Nexus Repository release

    On startup, Nexus Repository uses the latest nexus-<timestamp>.sql file and the H2 database file called nexus.mv.db files found in the $data-dir/db folder. Nexus Repository automatically creates a backup called nexus-<timestamp>-backup.zip.

    This process may take some time depending on the size of the database. Instances with H2 database over 10 gigabits should consider migrating to PostgreSQL. PostgreSQL is available to Community Edition users as of the 3.77.2 release.

  5. Verify the Nexus Repository instance

    Once the instance has completely started, verify that the service is working as expected.

  6. Delete the SQL and backup files

    The nexus-<timestamp>.sql and nexus-<timestamp>-backup.zip files should be removed or deleted from the deployment for security reasons. Do not remove or rename the nexus.mv.db file.

Nexus Repository Deployments Using PostgreSQL

Update your Java version to Java 17 when upgrading to upgrading to versions after the 3.70.0 release following the typical upgrade instructions. The Nexus Repository 3.71.0 release and greater no longer supports Java 8 or 11.

see How to change your Java Version.