Загрузка данных
Настрой Maven строго по корпоративной инструкции «Использование Nexus и SberOSC в Maven».
Рабочий проект:
/Users/23865613/IdeaProjects/snl-integration-audit
ВАЖНЫЕ ОГРАНИЧЕНИЯ:
1. Не изменять pom.xml.
2. Не изменять Java-код, тесты, application.yaml и другие файлы проекта.
3. Не создавать самостоятельно Maven-профили, repositories, mirrors или server id.
4. Не исправлять и не дополнять официальный settings.xml по собственному предположению.
5. Не выполнять git add, commit, push, checkout, merge или rebase.
6. Не выводить в чат токены, пароли, BASE64_STRING и Authorization-заголовки.
7. Не добавлять settings.xml в Git.
8. Использовать исключительно содержимое официального settings.xml, скачанного по корпоративной инструкции.
9. Если официальная инструкция или файл содержат противоречие — остановиться и сообщить о нём, а не придумывать исправление.
ЗАДАЧА
Нужно заново настроить локальный Maven, используя официальный settings.xml из папки Downloads.
ШАГ 1. НАЙТИ ОФИЦИАЛЬНЫЙ ФАЙЛ
Найди в папке Downloads все возможные файлы настроек:
find /Users/23865613/Downloads -maxdepth 2 -type f \( -iname "settings.xml" -o -iname "settings*.xml" \) -print
Для каждого файла покажи только:
- полный путь;
- дату изменения;
- размер;
- Maven server id;
- Maven mirror id;
- mirrorOf;
- profile id;
- activeProfile;
- repository id;
- pluginRepository id.
Значения username, password, токенов и URL с учётными данными не показывай.
Для чтения XML используй безопасный XML-парсер. Не применяй grep к строкам password или username.
ШАГ 2. ВЫБРАТЬ ФАЙЛ
Выбери самый свежий файл, скачанный с корпоративной страницы «Использование Nexus и SberOSC в Maven».
Файл должен начинаться с Maven settings:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
Не использовать старый файл ~/.m2/settings.xml как источник.
Не создавать новое содержимое settings.xml самостоятельно.
ШАГ 3. ПРОВЕРИТЬ ЗАПОЛНЕНИЕ
До копирования проверь, остались ли в официальном файле текстовые заглушки, например:
- «ваш токен из sber osc»;
- «user_name из токена nexus»;
- «password из токена nexus»;
- «ваш числовой логин»;
- «любой набор букв»;
- XML-значения, явно являющиеся инструкциями, а не реальными настройками.
Не выводи реальные значения секретов.
Если заглушки остались:
1. ничего не копируй;
2. ничего не изменяй;
3. перечисли только названия незаполненных полей и соответствующие server id;
4. остановись.
Не пытайся получать или восстанавливать секреты самостоятельно.
ШАГ 4. СОЗДАТЬ РЕЗЕРВНУЮ КОПИЮ
Если официальный файл полностью заполнен, выполни:
mkdir -p /Users/23865613/.m2
Если существует старый файл:
/Users/23865613/.m2/settings.xml
создай резервную копию с текущей датой и временем, не показывая его содержимое:
cp /Users/23865613/.m2/settings.xml \
/Users/23865613/.m2/settings.xml.backup-$(date +%Y%m%d-%H%M%S)
ШАГ 5. УСТАНОВИТЬ ОФИЦИАЛЬНЫЙ ФАЙЛ
Скопируй официальный файл без изменения его структуры:
cp "<путь к найденному официальному файлу>" \
/Users/23865613/.m2/settings.xml
Затем установи права:
chmod 600 /Users/23865613/.m2/settings.xml
Не изменяй:
- server id;
- mirror id;
- mirrorOf;
- profile id;
- activeProfile;
- repository URL;
- pluginRepository URL;
- структуру XML.
ШАГ 6. ПРОВЕРИТЬ XML
Выполни:
xmllint --noout /Users/23865613/.m2/settings.xml
Если xmllint отсутствует, проверь корректность XML через Python XML parser, не выводя содержимое файла.
ШАГ 7. ПРОВЕРИТЬ ЛОГИЧЕСКУЮ СТРУКТУРУ
После установки покажи только безопасную сводку:
- список server id;
- список mirror id;
- mirrorOf;
- список profile id;
- список activeProfile;
- repository id внутри каждого профиля;
- pluginRepository id внутри каждого профиля;
- существует ли каждый профиль, указанный в activeProfile;
- совпадают ли repository id и server id там, где сервер требует авторизацию.
Не показывай:
- username;
- password;
- токены;
- BASE64_STRING;
- Authorization;
- полный settings.xml.
Если activeProfile ссылается на отсутствующий profile id:
1. не исправляй это самостоятельно;
2. не создавай профиль;
3. не меняй activeProfile;
4. остановись;
5. сообщи точные несовпадающие идентификаторы.
Если ни один профиль не содержит repositories, тоже остановись и сообщи об этом.
ШАГ 8. ПРОВЕРИТЬ MAVEN
Только если XML и его структура корректны, выполни:
export PATH="/Applications/apache-maven-3.9.6/bin:$PATH"
mvn --version
После этого из каталога проекта:
cd /Users/23865613/IdeaProjects/snl-integration-audit
выполни:
mvn -s /Users/23865613/.m2/settings.xml \
-U \
-DskipTests \
dependency:resolve
Не запускай compile и test на этом этапе.
ШАГ 9. АНАЛИЗ РЕЗУЛЬТАТА
Если dependency:resolve завершился ошибкой:
- покажи первую содержательную Maven-ошибку;
- укажи groupId, artifactId и version недоступной зависимости;
- укажи название репозитория, из которого Maven пытался её получить;
- укажи HTTP-статус: 401, 403, 404 или другой;
- не показывай секретные параметры URL;
- не редактируй settings.xml автоматически;
- не редактируй pom.xml;
- остановись.
Если dependency:resolve успешен, сообщи, что корпоративные зависимости Maven доступны.
ИТОГОВЫЙ ОТЧЁТ
Дай краткий отчёт:
1. Найденный официальный settings.xml.
2. Была ли создана резервная копия.
3. Куда установлен файл.
4. Результат XML-проверки.
5. Результат проверки profile/activeProfile.
6. Результат dependency:resolve.
7. Первая ошибка, если проверка не прошла.
8. Подтверждение, что pom.xml и исходный код не изменялись.
9. Подтверждение, что секреты не выводились.
10. Точный вывод git status --short для проекта.
Никаких дополнительных исправлений сверх корпоративной инструкции не выполнять.