JFrog’s docs offer a Nexus team a Docker-based migrator that you run on the Nexus host (JFrog’s Nexus migration page, read 2026-10-23). Whichever server you choose, your builds, credentials and lockfiles still need changing. This page sets out what JFrog offers, what the move involves with either server, and what CloudRepo moves, with every JFrog fact quoted from its page and dated.
What JFrog offers a Nexus team
JFrog’s page for the move is titled “Nexus Repository Manager Migration to JFrog Artifactory”, and the page describes the move as “Migrate repositories, artifacts, users, and roles from Nexus to Artifactory 7.x using the Nexus Migrator 0.9.x Docker tool” (JFrog’s Nexus migration page, read 2026-10-23). The same page says the migrator “supports migration to JFrog Artifactory 7.x from Nexus Repository Manager OSS and Nexus Repository Manager Pro” (JFrog’s Nexus migration page, read 2026-10-23).
What the migrator handles
JFrog’s page lists what the migrator handles and what it does not.
| Migrated | Not migrated |
|---|---|
| Local and proxy repositories | Hosted repository group configurations |
| Repository metadata | Build information and CI/CD pipeline data |
| Security entities (users, roles) | Nexus-specific plugins |
| Artifact checksums | Repository routing rules |
The table is JFrog’s, as its page words it (JFrog’s Nexus migration page, read 2026-10-23). JFrog’s Migrator Tool Overview page also lists privileges and “LDAP Connections and Groups” among the entities it migrates (JFrog’s Migrator Tool Overview page, read 2026-10-23). The scope table above does not name them.
What it needs
- Run it on the Nexus host: “You must run the migrator tool from the Nexus Repository Manager machine” (JFrog’s Nexus migration page, read 2026-10-23).
- Docker on that host: “Install Docker (version 20 or later) in the machine that hosts Nexus Repository Manager” (JFrog’s Before You Begin page, read 2026-10-23).
- Script execution in Nexus: the page lists “Script execution is enabled in Nexus Repository Manager” as a requirement and adds “Enabling script execution requires restarting the Nexus server” (JFrog’s Before You Begin page, read 2026-10-23).
- Administrator and root: “The user in the Artifactory machine and the Nexus Repository Manager machine must have administrator privileges”, and “The user who runs the migration must have root privileges” (JFrog’s Before You Begin page, read 2026-10-23).
What it leaves in place
JFrog’s FAQ says “Your original Nexus data is not deleted or modified” (JFrog’s Nexus migration page, read 2026-10-23). The Migration Process page adds “You can run the migration process more than once to load any new repositories, artifacts, and security configuration in Nexus Repository Manager to Artifactory” (JFrog’s Migration Process page, read 2026-10-23).
The Migrator Tool Overview page also notes a naming rule: “The migrator tool renames all docker repositories to lower case when it migrates the repositories to Artifactory” (JFrog’s Migrator Tool Overview page, read 2026-10-23).
What the move involves with either server
Your files are one job. The addresses and credentials in your builds are the rest.
- Repositories. List each Nexus repository by type (hosted, proxy or group) and format, then create a counterpart of the same format on the new server. CloudRepo’s terms page maps a Nexus hosted, proxy or group repository to CloudRepo’s.
- Formats. Check each format you host against what the tool you choose says it moves. CloudRepo’s tested set is in the next section.
- Credentials in every build. Every build that signs in to Nexus holds a Nexus credential, in a file such as
settings.xml,.npmrcorpip.conf, in a CI secret, or in adocker login. Each one needs a credential for the new server. - URLs in every build. The repository address sits in
pom.xml, Gradle scripts,.npmrc,pip.confand Docker image names, and each one changes. - Lockfiles. A lockfile can record the address a package came from. npm’s docs say a
package-lock.jsonentry holds “resolved: The place where the package was actually resolved from. In the case of packages fetched from the registry, this will be a url to a tarball.” (npm’s package-lock.json page, read 2026-10-23). A lockfile written against your Nexus host still names that host, so search for it with the rest.
For a move to CloudRepo, Change every Nexus and Artifactory URL in your builds, lockfiles included maps Nexus 2, Nexus 3 and Artifactory URLs to CloudRepo’s, shows how to find every one in your builds, and covers regenerating npm, Yarn, Poetry and uv lockfiles. Step 5 of Migrate from Sonatype Nexus Repository shows the files to change for each build tool.
Switch one build at a time, and keep Nexus up until every build has passed against the new server.
CloudRepo as the other option
CloudRepo hosts Maven, npm, Python (PyPI) and Docker/OCI repositories, and plans start at $99/month billed annually. Each self-serve plan starts with a 14-day free trial. JFrog lists its plans on its pricing page (read 2026-10-23), and ours are on our pricing page.
cloudrepo-migrate nexus3 moves a Nexus 3 server’s hosted Maven, npm, PyPI and Docker repositories, and has been tested against a real Nexus 3 server for all four. cloudrepo-migrate nexus2 moves a Nexus 2 server’s hosted Maven and npm repositories, and has been tested against a real Nexus 2 server for both. Proxy and group repositories are skipped, and the report says why.
Install it, then do a dry run, which lists what would move and uploads nothing.
pipx install cloudrepo-migratecloudrepo-migrate nexus3 --nexus-url https://nexus.example.com --org your-org --dry-runA Nexus 2 server has its own command, with the same flags. Its --nexus-url ends in /nexus on a default install.
cloudrepo-migrate nexus2 --nexus-url https://nexus.example.com/nexus --org your-org --dry-runRun the same command without --dry-run to move the repositories. The source is only read, never written. It reads your Nexus login from NEXUS_USERNAME and NEXUS_PASSWORD (leave both unset for anonymous read), and your CloudRepo token from CLOUDREPO_TOKEN: set them in your shell, never on the command line.
Create each target repository in CloudRepo first, with the same format as its Nexus repository, and a repository token that can write to it. The Nexus 3 migration guide and the Nexus 2 migration guide have the steps.
Every JFrog and npm page this article cites was read on 2026-10-23. Vendors change their documentation, so check each page before you decide.