Перенос репозиториев с Sonatype Nexus 1.9 на 3.0

#migration #repository #nexus

#миграция #репозиторий #nexus

Вопрос:

В настоящее время у нас есть репозиторий Nexus (версия 1.9) для хранения наших артефактов Maven на старом сервере. На нашем новом сервере мы установили последнюю версию репозитория Nexus (3.0.2). По-видимому, версия 1.9 хранит артефакты Maven непосредственно в файловой системе в соответствии с Maven coordinate tree ( org/apache/commons/... ), но версия 3.0.2 хранит артефакты в репозитории elastic search в виде объектов blob.

Итак, мои вопросы таковы: как легко перенести все артефакты с версии 1.9 на новую версию 3.0.2? Средство миграции должно поставляться с версией 3.1, но я боюсь, что это касается только миграции с 2.x на 3.1. Это набор команд оболочки для этого processus?

Ответ №1:

Мы решили нашу проблему. Nexus 1.9 хранит артефакты непосредственно в файловой системе, поэтому мы использовали сценарий оболочки для отправки артефактов с помощью curl :

 #!/bin/bash

REPOSITORY=your_repo
EXTENSIONS="*.jar *.pom *.xml *.md5 *.sha1 *.zip"

for tosearch in $EXTENSIONS;
do
     for file in `find . -name $tosearch`;
     do
         length=${#file}
         path=${file:2:$length}
         curl -# -u user:password --upload-file $path http://nexus.example.fr/repository/$REPOSITORY/$path
     done;
done;
  

Комментарии:

1. Ваш скрипт работает. Мне просто пришлось добавить *.war в список расширений, потому что в нашем репозитории также есть файлы war. Спасибо за публикацию скрипта!