Как заставить maven использовать настройки системного прокси - PullRequest
26 голосов
/ 30 августа 2010

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

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

Ответы [ 4 ]

29 голосов
/ 30 августа 2010

Вы смотрели на 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.

21 голосов
/ 31 августа 2010

Существует системное свойство 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.

6 голосов
/ 25 октября 2017

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

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

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

mvn $MAVEN_CLI_OPTS test

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

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

0 голосов
/ 27 июля 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...