Как настроить прокси-сервер для HTTP и HTTPS в Maven settings.xml?
Я использую Maven 3.1.1 за прокси-сервером. Тот же прокси обрабатывает трафик HTTP
и HTTPS
.
Я не могу сказать maven, используя settings.xml
, чтобы использовать оба протокола. Мне кажется, что возможно только один активный прокси-сервер, так как любой активный прокси-сервер определяется первым, а последующие "активные" определения прокси игнорируются. Это мой settings.xml
:
<proxies>
<proxy>
<id>myhttpproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>192.168.1.2</host>
<port>3128</port>
<nonProxyHosts>localhost</nonProxyHosts>
</proxy>
<proxy>
<id>myhttpsproxy</id>
<active>true</active>
<protocol>https</protocol>
<host>192.168.1.2</host>
<port>3128</port>
<nonProxyHosts>localhost</nonProxyHosts>
</proxy>
</proxies>
Можно ли настроить прокси-сервер для HTTP
и HTTPS
в maven settings.xml
? Я знаю, что я мог бы обойти это, передав свойства системы Java в maven-вызов, например:
-Dhttps.proxyHost=192.168.1.2 -Dhttps.proxyPort=3128
но, конечно, это должно быть возможно из settings.xml
?
Исправлены ошибки Maven, такие как MNG-2305 и MNG-4394 предположим, что этот вопрос решен, но я не уверен.
В качестве альтернативы, есть ли "прокси-прокси", который я мог бы запустить локально, на который я мог бы указать maven? "Прокси-прокси" будет маршрутизировать http/https соответственно. Тем не менее, мне все равно нужно определить два активных определения прокси в settings.xml
для Maven для управления обоими типами трафика.
Ответы
Ответ 1
Прокси-сервер Maven из settings.xml используется как для http, так и для https, поэтому вам просто нужно определить один прокси-сервер, и он будет использоваться для обоих, вам просто нужно оставить только один тег proxy
, например:
<proxies>
<proxy>
<id>myhttpproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>192.168.1.2</host>
<port>3128</port>
<nonProxyHosts>localhost</nonProxyHosts>
</proxy>
</proxies>
Протокол выше - это протокол прокси-сервера, а не прокси-запрос.
Ответ 2
Я решил проблему с обновлением версии maven, или, другими словами, не используя встроенную версию eclipse maven, а внешнюю версию 3.3.9.
Ответ 3
Он работает без дополнительной записи ...<id>httpsproxy</id>...
(как упоминал @Krzysztof Krasoń), и вместе с ней (как заявила афер).
Проблема для нас заключалась в том, что Eclipse->Maven->User Settings->[x] Update Settings
явно не работал, и для проверки определенных вещей Eclipse->Maven->[x] Download repository index updates on startup
необходимо проверить (например, Maven Repositories View->Global Repositories->central->Update Index
). И больше всего:
Eclipse необходимо перезапустить после каждого обновления settings.xml
!: -/
Я предполагаю, что это проблема с ошибкой или перезагрузкой/кэшированием.
Мы успешно протестировали его с помощью
- Кеплер (4.3) и Неон (4.6)
- и их встроенные версии Maven (3.2.1/3.3.9), а также внешние
3.3.3
- с
http://
и https://
URL
Ответ 4
Я не очень уверен, но согласно документации здесь MNG-4394, они поддерживают подстановочные знаки. Поэтому вы можете попробовать
http|https
или
<protocol>*</protocol>
и это может сработать.