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. Любая идея?
Ответы
Ответ 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......