2010-08-30 4 views

ответ

18

Системное свойство 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.* классов, не Обще-HttpClient, JSch и т.д. Так что это не решает все проблемы и Maven действительно не поддерживает его (это регистрируется как MNG-728) ,

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

23

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

+5

всегда помнить, чтобы проверить $ HOME/.m2/settings.xml и $ M2_HOME/CONF/настройки.xml, я потратил около получаса, чтобы отключить прокси-сервер, потому что он был включен в папку двоичных файлов maven. –

+1

Возможно, вам придется создать файл, если он еще не существует. – Shatu

+2

Имя пользователя и пароль не являются обязательными. – lwpro2

0

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

4

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

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

Как я должен использовать прокси-сервер NTLM на предприятии, это единственное предложение, которое работает для меня несколько кратким. Gradle opts работает без проблем. –

Смежные вопросы