Add nexus/maven/readme.md

This commit is contained in:
pashko 2025-03-28 10:20:49 +08:00
parent d2f652e161
commit 4c42e6c604

152
nexus/maven/readme.md Normal file
View File

@ -0,0 +1,152 @@
Для добавления репозиториев 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`, чтобы предотвратить несанкционированное чтение паролей.
---