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

Как настроить параметры прокси-сервера системы maven

Я использую Ubuntu с Gnome, где я могу установить параметры сетевого прокси (с проверкой подлинности).

Вопрос в том, как я могу запустить maven в командной строке и заставить использовать этот прокси?

4b9b3361

Ответ 1

Существует системное свойство java.net.useSystemProxies, которое может быть установлено на true (на платформах Windows и Linux), чтобы сообщить JVM использовать настройки прокси-сервера системы. Из руководства Java Networking and Proxies:

Прежде чем мы увидим, как написать такой ProxySelector, расскажите о стандартном. J2SE 5.0 обеспечивает реализацию по умолчанию, которая обеспечивает обратную совместимость. Другими словами, по умолчанию ProxySelector проверит свойства системы, описанные ранее, чтобы определить, какой прокси использовать. Однако есть новая, необязательная функция: в последних системах Windows и на платформах Gnome 2.x можно указать по умолчанию ProxySelector использовать настройки прокси-сервера системы (как последние версии Windows, так и Gnome 2.x позволяют вам установить прокси-серверы по всему миру через свой пользовательский интерфейс). Если для системного свойства java.net.useSystemProxies установлено значение true (по умолчанию оно равно false для обеспечения совместимости), тогда по умолчанию ProxySelector будет пытаться использовать эти настройки. Вы можете установить это системное свойство в командной строке или отредактировать установочный файл JRE lib/net.properties, таким образом, вы должны изменить его только один раз в данной системе.

Но это будет работать только для классов java.net.*, а не для commons-httpclient, jsch и т.д. Таким образом, это не решает всей проблемы, и Maven на самом деле не поддерживает ее (это зарегистрировано как MNG-728).

Другими словами, я боюсь, вам придется настроить параметры прокси-сервера в ~/.m2/settings.xml.

Ответ 2

Вы посмотрели http://maven.apache.org/guides/mini/guide-proxies.html?

В ваших settings.xml:

<settings>
  .
  .
  <proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
    </proxy>
  </proxies>
  .
  .
</settings>

ПРИМЕЧАНИЕ. Это не влияет на код Java! Эти параметры прокси-сервера являются настройками прокси-сервера Maven.

Ответ 3

Те, кому необходимо установить эти параметры в командной строке, могут использовать следующее:

MAVEN_CLI_OPTS: "-DproxySet=true -Dhttp.proxyHost=yourProxyHost -Dhttp.proxyPort=9999 -Dhttp.nonProxyHosts=mvnrepository.com"

Использование:

mvn $MAVEN_CLI_OPTS test

Предупреждение: Свойство nonProxyHosts не работало корректно для меня при использовании его из среды CI. Я подозреваю, что это может быть потому, что символы канала не интерпретируются правильно в синтаксисе Gitlab YAML, но я не нашел способа исправить это.

Источник: https://confluence.atlassian.com/jirakb/java-option-http-nonproxyhosts-does-not-work-214863640.html

Ответ 4

В Netbeans вы должны удалить -Djava.net.useSystemProxies=true из Tools-> option->java->Maven. После его удаления Maven считывает настройки прокси-сервера из settings.xml.