Gradlew за прокси - PullRequest
       55

Gradlew за прокси

48 голосов
/ 20 января 2012

У меня есть образец от Gaelyk (называемый Bloogie), и он использует gradlew.

Я за прокси.

Я прочитал документы Gradle и нашел это:

gradle.properties

systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password

Но я понятия не имею, как поместить эту информацию в gradlew обертки.Есть идеи?

Ответы [ 16 ]

64 голосов
/ 24 января 2012

Все, что вам нужно сделать, это создать файл с именем gradle.properties (со свойствами, которые вы упомянули выше) и поместить его в домашний каталог пользователя gradle (по умолчанию USER_HOME/.gradle) ИЛИ в каталог вашего проекта.

Gradle (тоже оболочка !!!) автоматически подбирает gradle.properties файлов, если они найдены в домашнем каталоге пользователя или каталогах проекта.

Подробнее см. В руководстве пользователя Gradle , особенно в разделе 12.3: Доступ к сети через прокси

40 голосов
/ 03 марта 2014

Если вам нужен https доступ за прокси, рассмотрите возможность определения того же набора свойств для systemProp.https .

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080

См. . Невозможно создать приложение для Android с использованием сбоев в VPN и прокси для получения дополнительной информации.

19 голосов
/ 15 декабря 2014

Используйте это в командной строке:

gradle -Dhttp.proxyHost=***  -Dhttp.proxyPort=*** -Dhttp.proxyUser=**** -Dhttp.proxyPassword=****

Работает здесь!

14 голосов
/ 27 февраля 2017

Добавьте приведенное ниже в файл gradle.properties и в файл gradle/wrapper/gradle-wrapper.properties, если вы загружаете оболочку через прокси

Если вы хотите установить эти свойства глобально, добавьте его в USER_HOME/.gradle/gradle.properties file

## Proxy setup
systemProp.proxySet=true
systemProp.http.keepAlive=true
systemProp.http.proxyHost=host
systemProp.http.proxyPort=port
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=local.net|some.host.com

systemProp.https.keepAlive=true
systemProp.https.proxyHost=host
systemProp.https.proxyPort=port
systemProp.https.proxyUser=username
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=local.net|some.host.com
## end of proxy setup
9 голосов
/ 29 декабря 2014

Мне не удалось заставить свойство прокси работать, пока я не установил прокси https:

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080

Однако мне пришлось использовать свойство http для имени пользователя и пароля:

systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
6 голосов
/ 26 февраля 2012

Эта проблема с Gradle Wrapper была исправлена ​​с помощью Gradle 1.0-milestone-8. Дайте ему шанс.

3 голосов
/ 24 апреля 2018

Чтобы добавить больше нюансов, для моего случая, когда у меня есть несколько gradle.properties файлов в USER_HOME / .gradle и в корне проекта, я столкнулся с ошибкой 407 аутентификации, требующей проверки подлинности, с приведенным ниже журналом:

CONNECT refused by proxy: HTTP/1.1 407 authenticationrequired

Это привело к тому, что мои systemProp.https.proxyPassword и systemProp.http.proxyPassword пусто в файле gradle.properties в USER_HOME / .gradle, в то время как файл gradle.properties в корневом каталоге проекта остался информацией пароля.

Не Я уверен, что точная причина, но когда я удаляю один gradle.properties в корне проекта и сохраняю файл в USER_HOME / .gradle, мой случай разрешается.

2 голосов
/ 20 февраля 2018

после этого обновления JDK я не смог снова использовать gradlew за прокси.и наконец я обнаружил, что JDK по умолчанию отключил обычную аутентификацию для туннелирования HTTPS.поэтому я должен добавить это свойство для gradle.properties в дополнение к настройкам прокси

systemProp.jdk.http.auth.tunneling.disabledSchemes=""

Я надеюсь, это будет полезно для тех, кто борется с той же проблемой

2 голосов
/ 19 сентября 2017

У меня была та же проблема, и первым делом я создал gradle.properties.У меня не было такого файла, поэтому я должен создать его со следующим содержимым:

systemProp.http.proxyHost=proxy
systemProp.http.proxyPort=port
systemProp.http.nonProxyHosts=domainname|localhost
systemProp.https.proxyHost=proxy
systemProp.https.proxyPort=port
systemProp.https.nonProxyHosts=domainname|localhost

Когда я их добавил, команда gradlew правильно работает за корпоративным прокси.Я надеюсь, что это может быть полезно.

1 голос
/ 22 ноября 2017

Сначала это не сработало.
В моем случае я создал файл USER_HOME / .gradle / gradle.properties, но в итоге получил файл gradle.properties.txt.*

В окне терминала команда ls покажет полные имена файлов в папке .gradle.

Затем mv gradle.properties.txt gradle.properties

...