Migration from Nexus

Nexus MegaRepo
Blob store (file)Blob store (file)
RealmsJWT + RBAC
Routing / CleanupRouting / Cleanup
LDAPLDAP

NEXUS=https://nexus.example.com
REPO=maven-releases
CT=""
while true; do
  R=$(curl -s -u admin:pass "$NEXUS/service/rest/v1/components?repository=$REPO&continuationToken=$CT")
  echo "$R" | jq -r '.items[].assets[].downloadUrl' >> urls.txt
  CT=$(echo "$R" | jq -r '.continuationToken // empty')
  [ -z "$CT" ] && break
done
while read -r url; do
  path="${url#$NEXUS/repository/$REPO/}"
  mkdir -p "export/$REPO/$(dirname "$path")"
  curl -s -u admin:pass -o "export/$REPO/$path" "$url"
done < urls.txt

# Maven: bulk upload via PUT
find export/maven-releases -type f | while read -r file; do
  path="${file#export/maven-releases/}"
  curl -s -u admin:admin123 -X PUT \
    "http://megarepo:8080/repository/maven-releases/$path" \
    --upload-file "$file"
done

# npm
npm publish my-package-1.0.0.tgz --registry http://megarepo:8080/repository/npm-hosted/

# PyPI
twine upload --repository-url http://megarepo:8080/repository/pypi-hosted/ dist/*

# Raw
curl -u admin:admin123 -X PUT \
  "http://megarepo:8080/repository/raw-hosted/path/to/file.zip" \
  --upload-file file.zip

Maven (settings.xml)

<mirrors>
  <mirror>
    <id>megarepo</id>
    <mirrorOf>*</mirrorOf>
    <url>http://megarepo:8080/repository/maven-public/</url>
  </mirror>
</mirrors>

npm (.npmrc)

registry=http://megarepo:8080/repository/npm-public/

pip (pip.conf)

[global]
index-url = http://megarepo:8080/repository/pypi-public/simple/

Docker

docker login megarepo.example.com:8080
docker push megarepo.example.com:8080/myimage:latest