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

Gradlew за прокси

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

Я за прокси.

Я прочитал gradle docs и нашел это:

gradle.properties

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

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

4b9b3361

Ответ 1

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

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

Для получения дополнительной информации прочитайте руководство пользователя Gradle, особенно в разделе 12.3: Доступ к сети через прокси-сервер

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

Добавьте нижеприведенное в свой файл 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

Ответ 5

Я не смог заставить свойство proxy работать до тех пор, пока не установлю прокси-сервер https:

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

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

systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password

Ответ 6

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

Ответ 7

Чтобы добавить больше нюансов, для моего случая, когда у меня есть несколько файлов 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, мой случай разрешается.

Ответ 8

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

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 работает должным образом за корпоративным прокси. Я надеюсь, что это может быть полезно.

Ответ 9

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

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

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

Ответ 10

Было обнаружено, что чтение свойств из gradle.properties может быть неправильным. В случае, если строка содержит пробел, gradle не может найти прокси. проверьте свой прокси файл и разрежьте пробел в конце строки. Может помочь

Ответ 11

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

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

Тогда mv gradle.properties.txt gradle.properties

Ответ 12

У меня такая же проблема с прокси-сервером при работе с проектом Cordova.

Чтобы устранить проблему, я создал новый gradle.properties файл в папке android моего проекта Cordova (hello/platforms/android) и добавил код из вашего вопроса

systemProp.http.proxyHost=proxy.yourproxysite.com
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=yourusername
systemProp.http.proxyPassword=password

Ответ 13

Настройка SSl-прокси работала для меня.

systemProp.http.proxyHost=proxy.yourproxysite.com
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.yourproxysite.com
systemProp.https.proxyPort=8080

Ответ 14

Отрывочный ответ из связанной ветки ниже. Это показывает, как сделать это более программно. Надеюсь, поможет

task setHttpProxyFromEnv {
    def map = ['HTTP_PROXY': 'http', 'HTTPS_PROXY': 'https']
    for (e in System.getenv()) {
        def key = e.key.toUpperCase()
        if (key in map) {
            def base = map[key]
            //Get proxyHost,port, username, and password from http system properties 
            // in the format http://username:[email protected]:proxyport
            def (val1,val2) = e.value.tokenize( '@' )
            def (val3,val4) = val1.tokenize( '//' )
            def(userName, password) = val4.tokenize(':')
            def url = e.value.toURL()
            //println " - systemProp.${base}.proxy=${url.host}:${url.port}"
            System.setProperty("${base}.proxyHost", url.host.toString())
            System.setProperty("${base}.proxyPort", url.port.toString())
            System.setProperty("${base}.proxyUser", userName.toString())
            System.setProperty("${base}.proxyPassword", password.toString())
        }
    }
}

Смотрите эту тему для более

Ответ 15

После долгих попыток с этим и ударившись головой о стену, потому что ничто в моей системе не использовало прокси: оказалось, что мой экземпляр ** Android Emulator ** сам тайно/молча устанавливал прокси для меня через Android Emulator> Настройки> Прокси-сервер и применили эти настройки во время игры с ним неделями ранее, чтобы устранить проблему с Expo.

Если у кого-то возникла эта проблема, убедитесь, что вы проверили 100%, чтобы убедиться, что пользовательские настройки прокси-сервера действительно не используются с помощью: ./gradlew installDebug --info --debug --stacktrace и поиска proxyHost в выходных данных журнала, чтобы убедиться, что этого. Это может быть ваш эмулятор.

Ответ 16

Вы должны добавить следующую конфигурацию в gradle.configuration Это параметры прокси, которые необходимо настроить, если вы работаете за прокси.

Источник: (https://docs.gradle.org/current/userguide/build_environment.html#sec:accessing_the_web_via_a_proxy)

И не добавить "http.//или„https:“в systemProp.http.proxyHost только„www.host.com“.Также закомментируйте systemProp.http.proxyUser или proxypassword, если вам не нужно войти в систему в прокси.

systemProp.proxySet=true
systemProp.http.keepAlive=true
systemProp.http.proxyHost=www.host.com
systemProp.http.proxyPort=port
systemProp.http.proxyUser=username_ifneeded
systemProp.http.proxyPassword=password_needed
systemProp.http.nonProxyHosts=local.net|some.host.com

systemProp.https.keepAlive=true
systemProp.https.proxyHost=host
systemProp.https.proxyPort=port
systemProp.https.proxyUser=username_ifneeded
systemProp.https.proxyPassword=password_ifneeded
systemProp.https.nonProxyHosts=local.net|some.host.com

Ответ 17

systemProp.http.proxyUser=userId
systemProp.http.proxyPassword=password

то же самое с https......