devops/nexus/maven/readme.md
2025-03-28 10:20:49 +08:00

153 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Для добавления репозиториев Nexus 3 в `settings.xml` с использованием паролей, зашифрованных в Base64, мы разделим инструкцию на два этапа: для Windows и Linux. Важно отметить, что Maven не поддерживает автоматическое декодирование Base64, поэтому вам нужно будет самостоятельно убедиться, что пароль корректно декодируется на стороне сервера.
---
## **Общая структура `settings.xml`**
Файл `settings.xml` должен содержать:
1. Секцию `<servers>` для аутентификации в репозиториях.
2. Секцию `<mirrors>` или `<repositories>` (в зависимости от ваших требований).
Пример структуры файла:
```xml
<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. Выполните команду для кодирования пароля:
```cmd
echo myPassword | base64
```
Если используется PowerShell:
```powershell
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("myPassword"))
```
### **Linux**
1. Откройте терминал.
2. Выполните команду:
```bash
echo -n 'myPassword' | base64
```
Флаг `-n` исключает добавление символа новой строки.
Результат — это ваш пароль, закодированный в Base64. Например:
```
bXlQYXNzd29yZA==
```
---
## **Шаг 2: Настройка `settings.xml`**
Добавьте все репозитории в `settings.xml`. Для каждого репозитория создайте соответствующий `<server>` с Base64-закодированным паролем.
### **Пример конфигурации**
```xml
<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` отсутствует, создайте его:
```cmd
mkdir %USERPROFILE%\.m2
```
3. Сохраните файл `settings.xml` в этот каталог.
### **Linux**
1. Путь к пользовательскому файлу: `~/.m2/settings.xml`.
- Например: `/home/<your-username>/.m2/settings.xml`.
2. Если каталог `.m2` отсутствует, создайте его:
```bash
mkdir ~/.m2
```
3. Сохраните файл `settings.xml` в этот каталог.
---
## **Шаг 4: Проверка конфигурации**
1. Выполните команду для проверки:
```bash
mvn help:effective-settings
```
Убедитесь, что ваши серверы и зеркала правильно распознаются.
2. Протестируйте загрузку зависимостей:
```bash
mvn dependency:resolve
```
---
## **Важные замечания**
1. **Безопасность**: Base64 — это **не шифрование**, а лишь кодирование. Пароль можно легко декодировать. Рекомендуется использовать мастер-пароль Maven для шифрования.
2. **Совместимость**: Убедитесь, что сервер Nexus настроен на принятие Base64-закодированных паролей.
3. **Права доступа**: Ограничьте доступ к файлу `settings.xml`, чтобы предотвратить несанкционированное чтение паролей.
---