Налаштування проксі Maven для робочих і домашніх мереж
Конфігурація проксі належить до налаштувань Maven. Вибір файлу налаштувань — передбачуваний спосіб перемикання мережевих середовищ.
Ваш проєкт не змінився в потязі додому, але його мережевий маршрут змінився. Адреса проксі, яка працює в офісі, може бути недоступною вдома. Це налаштування середовища, а не причина вміщувати проксі роботодавця в POM проєкту.
Модель налаштувань Maven розміщує визначення проксі в розділі верхнього рівня proxies. Профілі налаштувань не надають другої довільної копії цього розділу. Додавання XML-фрагмента у формі проксі в профіль не робить його підтримуваним механізмом перемикання мережі.
Простий варіант — підтримувати затверджені налаштування для кожного середовища й обирати відповідні:
mvn --settings /path/to/settings-office.xml verify
Приклад явно вибирає користувацькі налаштування. Використовуйте команду та файл, що відповідають збірці; це не означає, що файл слід закомітити разом з обліковими даними.
Тримайте відмінності малими
Запишіть, які налаштування справді відрізняються: активний проксі, обхідні хости, дзеркала та потрібні серверні облікові записи. Другий файл не повинен тихо видаляти не пов'язану політику репозиторію або використовувати старий пароль.
Перевірте будь-які глобальні налаштування, які все ще об'єднуються з вибраними користувацькими налаштуваннями. Явний файл робить вхід видимим, але не означає, що Maven не має інших джерел конфігурації.
Автоматичне перемикання потребує реального сигналу
Maven не може у звичайному сенсі вивести «офіс» із розташування ноутбука. Автоматична схема потребує підтримуваного зовнішнього механізму виявлення або керування та визначеної реакції, коли цей механізм недоступний.
Будьте обережні з широкими шаблонами обходу, призначеними для вимкнення проксі вдома. Вони також можуть впливати на внутрішні призначення або приховувати, яким маршрутом пішов запит.
Для першого виправлення віддавайте перевагу видимому, явному вибору налаштувань. Коли він працюватиме в обох середовищах, будь-яка автоматизація зможе відтворити цю відому конфігурацію замість багаторазового переписування інструкцій збірки проєкту.