Невозможно использовать переменную среды для порта прокси Maven - PullRequest
0 голосов
/ 30 мая 2018

Я могу настроить прокси для успешной работы с Maven, используя settings.xml .

Я решил продвинуться на шаг вперед и использовать переменные среды для каждого из прокси.параметры, такие как:

<proxies>
  <proxy>
    <active>true</active>
    <protocol>https</protocol>
    <host>${env.PROXY_HOST}</host>
    <port>${env.PROXY_PORT}</port>
    <username>${env.PROXY_USER}</username>
    <password>${env.PROXY_PASSWORD}</password>
  </proxy>
</proxies>

Эта конфигурация - в частности, используется переменная окружения для порта - приводит к сбою выполнения моего Maven.Сначала он передает это предупреждение:

[WARNING] 
[WARNING] Some problems were encountered while building the effective settings
[WARNING] Unable to parse element 'port', must be an integer (position: END_TAG seen ...<port>${env.PROXY_PORT}</port>... @29:40) caused by: java.lang.NumberFormatException: For input string: "${env.PROXY_PORT}" @conf/settings.xml, line 29, column 40
[WARNING] 

и вскоре после этого происходит сбой при неверном порте:

org.eclipse.aether.transfer.MetadataTransferException: 
Connect to localhost:0 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)

Maven может анализировать переменные среды для хоста, пользователя& пароль в настройках прокси, но не для порта.

Вот пример того, как переменная среды задается в скрипте bash, после чего следует команда Maven

PROXY_PORT=8888
export PROXY_PORT

Я также пытался:

PROXY_PORT="8888"
export PROXY_PORT

Почему настройка порта не использует переменную среды, как другие настройки прокси?

Как я могу использовать переменные среды для проксинастройка порта?

1 Ответ

0 голосов
/ 01 июня 2018

Это ошибка, о которой сообщалось maven: https://issues.apache.org/jira/browse/MNG-6401 (или здесь: https://github.com/apache/maven/pull/163#issuecomment-390888715)

Замена для хоста выполнена:

  <proxies>
    <proxy>
      <active>true</active>
      <protocol>https</protocol>
      <host>${PROXY_HOST}</host>
      <port>${PROXY_PORT}</port>
      <username>${PROXY_USER}</username>
      <password>${PROXY_PASSWORD}</password>
    </proxy>
  </proxies>

Который подставляется так:

$ PROXY_PORT=100 PROXY_HOST=http://thehost PROXY_USER=TheUser PROXY_PASSWORD=ThePassword mvn help:effective-settings | grep -FA8  '<proxies>'
  <proxies>
    <proxy>
      <protocol>https</protocol>
      <username>TheUser</username>
      <password>***</password>
      <port>0</port>
      <host>http://thehost</host>
    </proxy>
  </proxies>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...