Подтвердить что ты не робот

Как настроить прокси-сервер для 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 для управления обоими типами трафика.

4b9b3361

Ответ 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>

и это может сработать.