Migration plan for Artifactory -> Nexus
Let's start with a clean nexus installation on Tomcat (testing showed that it's quite fast using Tomcat, the testing instance on Jetty was a lot slower).
1. Exporting repositories from Artifactory
Repositories can be grabbed quite easily using lftp: lftp http://artefacts.deegree.org/libs-releases-local, then mirror --parallel=3 . libs-releases-local. I don't think it's so important to grab the snapshots. I'm sure the same can be accomplished for the other important repositories. So let's see what repos we need:
- libs-releases-local
- if possible, libs-snapshots-local
- ext-releases-local
- if possible, ext-snapshots-local
- test-artifacts-local
- deegree-restricted
After mirroring these locally, let's use the nexus tool to convert them.
2. Converting the repos
The tool can be found here:
You need to run it with Google Guava on the classpath:
java -cp nexus-repository-conversion-tool-2.0.6-cli.jar:remotecontent\?filepath\=com%2Fgoogle%2Fguava%2Fguava%2F12.0.1%2Fguava-12.0.1.jar org.sonatype.nexus.tools.repository.RepositoryConvertorCli -r libs-releases-local/ -o libs-releases-local-converted
Guava can be found here:
http://repo1.maven.org/maven2/com/google/guava/guava/12.0/guava-12.0.jar
After conversion, equivalent repos should be created on Nexus, and grouped in the public repo (except the restricted repo), including the proxying repos. As described on the tool page, the resulting repos can be just moved into nexus' repo directory.
3. Rights management
Create privileges for all repos.
Create a role only with read/view access to the public repo.
Create a role with read/write/view access to the deegree repos (release/snapshots) as a deployment role.
Create a role with read/write/view access to the restricted repo.
Then create appropriate users, remove all roles except the first from anonymous.
That should be it. Once done, the repositories should be cleaned up a little, there are many artifacts in the wrong places.