2016-10-24 3 views
3

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

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

ответ

4

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

#!/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; 
+0

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