Мне нужен веб-доступ из Gradle через прокси-сервер, чтобы использовать интеграцию Gradle / Artifactory для Jenkins. Чтобы уменьшить возможные причины проблем, я вручную добавляю плагин Artifactory в build.gradle и запускаю его из командной строки:
apply {
apply from: "http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle"
}
Следуя этому описанию, я указал следующее в .gradle / gradle.properties в моем домашнем каталоге:
systemProp.http.proxyHost=hostname
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=de\\username
systemProp.http.proxyPassword=xxx
С вышеупомянутой конфигурацией прокси (которая, как известно, работает), она завершается ошибкой:
11: 33: 17.699 [ОШИБКА] [org.gradle.BuildExceptionReporter] Причина: java.io.IOException: сервер вернул код ответа HTTP: 407 для URL: http://gradle.artifactoryonline.com/gradle/plugins/org/ jfrog / buildinfo / buildinfo-экстрактор-Gradle / 1.0.1 / artifactoryplugin-1.0.1.gradle
У меня есть два прокси-сервера на выбор, и один всегда отвечает 407
( Требуется проверка подлинности прокси ), другой - 502
( Плохой шлюз ), поэтому очевидно, что используются параметры proxyHost и proxyPort.
Поскольку имя пользователя (на основе пользователя Active Directory) содержит обратную косую черту, я пробовал оба \\
варианта \
, но ни один из них не работал. Указанный пользователь отличается от пользователя, вошедшего в систему на компьютере и в Active Directory. Учетные данные этого пользователя недействительны для прокси, поэтому мне нужно иметь возможность указать другого пользователя.
Установка тех же опций в графическом интерфейсе Дженкинса или Артефактуры работала.
источник
Ответы:
Уточнение по поводу ответа Даниила:
Конфигурация прокси только HTTP
HTTPS только конфигурация прокси
Конфигурация прокси HTTP и HTTPS
Конфигурация прокси с пользователем и паролем
работал для меня (с
gradle.properties
либо в homedir, либо в dir проекта, сборка все еще не работала ). Спасибо, что указали на проблему, которая дала этот обходной путь. См. Справочный документ по адресу https://docs.gradle.org/current/userguide/build_environment.html#sec:accessing_the_web_via_a_proxy.Обновление Вы также можете поместить эти свойства в
gradle-wrapper.properties
(см .: https://stackoverflow.com/a/50492027/474034 ).источник
~/.gradle/gradle.properties
убедитесь , что вы префикс свойства сsystemProp
, как, напримерsystemProp.http.proxyHost=127.0.0.1
-Dhttp.proxyHost
и лайки) какJAVA_OPTS
переменную окружения, чтобы она работала.Это мои gradle.properties, обратите внимание, те, HTTPS часть
источник
По моему у
build.gradle
меня есть следующая задача, которая использует обычные настройки прокси-сервера linuxHTTP_PROXY
иHTTPS_PROXY
из оболочки env:источник
Для меня работает добавление этой конфигурации в файл gradle.properties проекта, где файл build.gradle:
Где: proxyUrl - это адрес прокси-сервера ( http: // ..... )
proxyPort - это порт (обычно 8080)
USER - мой пользователь домена
ПАРОЛЬ, мой пароль
В этом случае прокси для http и https одинаков
источник
Попробуйте следующее:
gradle -Dhttp.proxyHost=yourProxy -Dhttp.proxyPort=yourPort -Dhttp.proxyUser=usernameProxy -Dhttp.proxyPassword=yourPassoword
источник
Используя очень простую Java-программу «Request a URL», я смог воспроизвести проблему.
http.proxyUser
иhttp.proxyPassword
кажутся нестандартными, хотя и популярными, опциями, так как они не описаны на справочной странице по Java, связанной с учебником Gradle ; хотя руководство Gradle упоминает их.Кажется, Java-программы, которые хотят поддерживать прокси-аутентификацию, должны делать это вручную (и я смог сделать это, используя код на связанной странице).
Я отправил эту проблему (и исправление) в систему отслеживания проблем Gradle . Поднятая проблема GRADLE-1556 была решена в 1,0-миль-8 (февраль 2012 г.)
источник
Проверьте в c: \ Users \ ваше имя пользователя \ .gradle \ gradle.properties:
источник
Создайте файл с именем
gradle.properties
внутри папки проекта, в которой онbuild.gradle
находится. Добавьте следующую записьЕсли вы используете DNS для прокси, добавьте его как
systemProp.https.proxyHost=www.proxysite.com
Для IP просто укажите IP без
http://
илиhttps://
Проверьте официальный документ для получения более подробной информации и настройки прокси на глобальном уровне.
источник
Существует два способа использования Gradle за прокси-сервером:
Добавить аргументы в командной строке
(Из поста Гийома Берша)
Добавьте эти аргументы в вашу команду gradle:
или эти аргументы, если вы используете https:
Добавить строки в конфигурационный файл Gradle
в
gradle.properties
добавить следующие строки:(
gradle.properties
расположение файла см. в официальной документации https://docs.gradle.org/current/userguide/build_environment.html.РЕДАКТИРОВАТЬ: как сказал @Joost: небольшая, но важная деталь, которую я изначально упустил из виду: обратите внимание, что фактическое имя хоста НЕ содержит
http://
протокольную часть URL-адреса ...источник
http://
протокольную часть URL-адреса ...Основано на ответе SourceSimian; это работало на учетных записях пользователей домена Windows. Обратите внимание, что имя пользователя не имеет включенного домена,
источник
В случае, если я пытаюсь настроить прокси из Android Studio Appearance & Behavior => Системные настройки => HTTP Proxy. Но прокси не сработал, поэтому я нажимаю не прокси.
Поэтому я удаляю все свойства, начиная с systemProp, например - systemProp.http.nonProxyHosts = *. Local, localhost
источник
~/.gradle/gradle.properties
. Спасибо за указание на это.Обновление @ sourcesimian's и @ kunal-b's которое динамически устанавливает имя пользователя и пароль, если настроено в системных свойствах.
Далее задается имя пользователя и пароль, если они указаны, или просто добавляются хост и порт, если не заданы имя пользователя и пароль.
источник
Если вы находитесь за прокси и используете Eclipse, перейдите на
Window Menu --> Preferences --> General --> Network Connections
. Выберите активных поставщиков как «Вручную».В разделе «Записи прокси» нажмите HTTPS, нажмите «Изменить» и добавьте прокси-хост и порт. Если требуется имя пользователя и пароль, укажите это также. Это сработало для меня!
источник
Если эта проблема с ошибкой HTTP 407 произошла только с выбранными пакетами, то проблема не в настройке прокси-сервера и интернет-соединении. Вы даже можете выставить свой компьютер в интернет через NAT и все равно столкнетесь с этой проблемой. Как правило, в то же время вы можете скачать нужные пакеты в браузере. Единственное решение, которое я нахожу: удалите папку .gradle в своем профиле (не в проекте). После синхронизации проекта это займет много времени, но все восстановится.
источник