Download all artifacts at once or migrate automatically from Nexus to Nexus.
Without n3dr it is not possible to download all artifacts from Nexus at once. n3dr makes it possible to easily migrate a Nexus server from AWS to Azure or Google Cloud.
The aims of the n3dr tool are:
snap install n3dr
brew install n3dr
choco install n3dr
Create a user, e.g. n3dr-download in Nexus3, create a role, e.g. n3dr-download and assign the following roles:
In order to upload artifacts, additional privileges are required:
user@computer:~/dev$ ./n3dr-linux -h N3DR is a tool that is able to download all artifacts from a certain Nexus3 repository. Usage: n3dr [command] Available Commands: backup Backup all artifacts from a Nexus3 repository help Help about any command repositories Count the number of repositories or return their names upload Upload all artifacts to a specific Nexus3 repository Flags: -v, --apiVersion string The Nexus3 APIVersion, e.g. v1 or beta (default "v1") -d, --debug Enable debug logging -h, --help help for n3dr --insecureSkipVerify Skip repository certificate check -p, --n3drPass string The Nexus3 password -n, --n3drURL string The Nexus3 URL -u, --n3drUser string The Nexus3 user -z, --zip Add downloaded artifacts to a ZIP archive Use "n3dr [command] --help" for more information about a command.
Define the password in
--- n3drPass: admin123
and set the permissions to 400 by issuing:
chmod 400 ~/.n3dr.yaml
All artifacts from a repository will be stored in a download folder when the following command is run:
./n3dr-linux backup -u admin -n http://localhost:8081 -r maven-releases
All artifacts from various repositories will be stored in a download folder when the following command is issued:
./n3dr-linux repositories -u admin -n http://localhost:8081 -b
Note: a new folder will be created for every repository:
It is possible to only download artifacts that match a regular expression. If one would like to download all artifacts from ‘some/group42’ then one could do that as follows:
./n3dr-linux backup -u admin -n http://localhost:8081 -r maven-releases -x 'some/group42'
If one would like to deploy is while download from all repositories then use
-x option as well:
./n3dr-linux repositories -u admin -n http://localhost:8081 -b -x 'some/group42'
In order to add all archives to a zip archive, one has to use the –zip or -z flag.
It is possible to upload all JARs that reside in a folder by running the following command:
./n3dr-linux upload -u admin -n http://localhost:8081 -r maven-public
Suppose that one has created a new Nexus3 repository, e.g. NexusNEW and that one would like to copy the content of the old repository, e.g. NexusOLD, then these basic steps could be issued to “clone” NexusOLD:
n3dr backup -u <old-nexus3-user> -n <old-nexus3-server-url> \ -r <old-repo-source-name> cd download mv <old-repo-source-name> <new-repo-target-name> n3dr upload -u <new-target-nexus3-user> -n <new-target-nexus3-server-url> \ -r <new-repo-target-name>
n3dr supports backing up to OCI Object Storage.
To enable this option you need to
If you want to remove local copies (after object has been uploaded) add following to
Although there is a number of equivalent tools:
None of them seems to be able to backup all repositories by running a single command.