2025-03-28 10:20:49 +08:00
..
2025-03-28 10:20:49 +08:00

Для добавления репозиториев Nexus 3 в settings.xml с использованием паролей, зашифрованных в Base64, мы разделим инструкцию на два этапа: для Windows и Linux. Важно отметить, что Maven не поддерживает автоматическое декодирование Base64, поэтому вам нужно будет самостоятельно убедиться, что пароль корректно декодируется на стороне сервера.


Общая структура settings.xml

Файл settings.xml должен содержать:

  1. Секцию <servers> для аутентификации в репозиториях.
  2. Секцию <mirrors> или <repositories> (в зависимости от ваших требований).

Пример структуры файла:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <!-- Серверы для репозиториев -->
    </servers>
    <mirrors>
        <!-- Зеркала для репозиториев -->
    </mirrors>
</settings>

Шаг 1: Кодирование пароля в Base64

Windows

  1. Откройте командную строку (cmd) или PowerShell.
  2. Выполните команду для кодирования пароля:
    echo myPassword | base64
    
    Если используется PowerShell:
    [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("myPassword"))
    

Linux

  1. Откройте терминал.
  2. Выполните команду:
    echo -n 'myPassword' | base64
    
    Флаг -n исключает добавление символа новой строки.

Результат — это ваш пароль, закодированный в Base64. Например:

bXlQYXNzd29yZA==

Шаг 2: Настройка settings.xml

Добавьте все репозитории в settings.xml. Для каждого репозитория создайте соответствующий <server> с Base64-закодированным паролем.

Пример конфигурации

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>nexus-base-release</id>
            <username>your-username</username>
            <password>bXlQYXNzd29yZA==</password>
        </server>
        <server>
            <id>nexus-base-snapshot</id>
            <username>your-username</username>
            <password>bXlQYXNzd29yZA==</password>
        </server>
        <server>
            <id>nexus-project01-release</id>
            <username>your-username</username>
            <password>bXlQYXNzd29yZA==</password>
        </server>
        <server>
            <id>nexus-project01-snapshot</id>
            <username>your-username</username>
            <password>bXlQYXNzd29yZA==</password>
        </server>
    </servers>

    <mirrors>
        <mirror>
            <id>nexus-base-release</id>
            <url>https://nexus-host.org.ru/maven-base-release</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
        <mirror>
            <id>nexus-base-snapshot</id>
            <url>https://nexus-host.org.ru/maven-base-snapshot</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
        <mirror>
            <id>nexus-project01-release</id>
            <url>https://nexus-host.org.ru/maven-project01-release</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
        <mirror>
            <id>nexus-project01-snapshot</id>
            <url>https://nexus-host.org.ru/maven-project01-snapshot</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
    </mirrors>
</settings>

Шаг 3: Размещение settings.xml

Windows

  1. Путь к пользовательскому файлу: %USERPROFILE%\.m2\settings.xml.
    • Например: C:\Users\<YourUsername>\.m2\settings.xml.
  2. Если каталог .m2 отсутствует, создайте его:
    mkdir %USERPROFILE%\.m2
    
  3. Сохраните файл settings.xml в этот каталог.

Linux

  1. Путь к пользовательскому файлу: ~/.m2/settings.xml.
    • Например: /home/<your-username>/.m2/settings.xml.
  2. Если каталог .m2 отсутствует, создайте его:
    mkdir ~/.m2
    
  3. Сохраните файл settings.xml в этот каталог.

Шаг 4: Проверка конфигурации

  1. Выполните команду для проверки:

    mvn help:effective-settings
    

    Убедитесь, что ваши серверы и зеркала правильно распознаются.

  2. Протестируйте загрузку зависимостей:

    mvn dependency:resolve
    

Важные замечания

  1. Безопасность: Base64 — это не шифрование, а лишь кодирование. Пароль можно легко декодировать. Рекомендуется использовать мастер-пароль Maven для шифрования.
  2. Совместимость: Убедитесь, что сервер Nexus настроен на принятие Base64-закодированных паролей.
  3. Права доступа: Ограничьте доступ к файлу settings.xml, чтобы предотвратить несанкционированное чтение паролей.