J'ai besoin d'un accès Web depuis Gradle via un serveur proxy pour utiliser l'intégration Gradle / Artifactory pour Jenkins. Pour réduire les causes possibles des problèmes, j'ajoute manuellement le plugin Artifactory dans build.gradle et je l'exécute à partir de la ligne de commande:
apply {
apply from: "http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle"
}
Suite à cette description, j'ai spécifié ce qui suit dans .gradle / gradle.properties dans mon répertoire personnel:
systemProp.http.proxyHost=hostname
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=de\\username
systemProp.http.proxyPassword=xxx
Avec la configuration de proxy ci-dessus (qui est autrement connue pour fonctionner), elle échoue:
11: 33: 17.699 [ERROR] [org.gradle.BuildExceptionReporter] Causé par: java.io.IOException: le serveur a renvoyé le code de réponse HTTP: 407 pour l'URL: http://gradle.artifactoryonline.com/gradle/plugins/org/ jfrog / buildinfo / build-info-extractor-gradle / 1.0.1 / artifactoryplugin-1.0.1.gradle
J'ai le choix entre deux serveurs proxy et l'un répond toujours avec 407
( authentification proxy requise ), l'autre avec 502
( mauvaise passerelle ), donc évidemment, les options proxyHost et proxyPort sont utilisées.
Comme le nom d'utilisateur (basé sur un utilisateur Active Directory) contient une barre oblique inverse, j'ai essayé les deux \\
et \
, mais aucun n'a fonctionné. L'utilisateur spécifié est différent de l'utilisateur connecté à la machine et à Active Directory. Les informations d'identification de cet utilisateur ne sont pas valides pour le proxy, je dois donc être en mesure de spécifier un utilisateur différent.
Définir les mêmes options dans l'interface graphique de Jenkins ou d'Artifactory a fonctionné.
la source
Réponses:
Raffinement de la réponse de Daniel:
Configuration du proxy HTTP uniquement
Configuration proxy HTTPS uniquement
Configuration du proxy HTTP et HTTPS
Configuration du proxy avec utilisateur et mot de passe
a fonctionné pour moi (avec
gradle.properties
soit dans homedir soit dans le répertoire du projet, la construction échouait toujours). Merci d'avoir signalé le problème à gradle qui a donné cette solution de contournement. Voir le document de référence sur https://docs.gradle.org/current/userguide/build_environment.html#sec:accessing_the_web_via_a_proxyMise à jour Vous pouvez également insérer ces propriétés dans
gradle-wrapper.properties
(voir: https://stackoverflow.com/a/50492027/474034 ).la source
~/.gradle/gradle.properties
assurez-vous de préfixer les propriétés avecsystemProp
, comme par exemplesystemProp.http.proxyHost=127.0.0.1
-Dhttp.proxyHost
et les likes) commeJAVA_OPTS
variable d'environnement pour que cela fonctionne.Ceci est mon gradle.properties, veuillez noter la partie HTTPS
la source
Dans mon,
build.gradle
j'ai la tâche suivante, qui utilise les paramètres de proxy Linux habituels,HTTP_PROXY
etHTTPS_PROXY
, à partir du shell env:la source
Pour moi, cela fonctionne en ajoutant cette configuration dans le fichier gradle.properties du projet, où le fichier build.gradle est:
Où: proxyUrl est l'url du serveur proxy ( http: // ..... )
proxyPort est le port (généralement 8080)
USER est mon utilisateur de domaine
MOT DE PASSE, mon mot de passe
Dans ce cas, le proxy pour http et https est le même
la source
Essayez ce qui suit:
gradle -Dhttp.proxyHost=yourProxy -Dhttp.proxyPort=yourPort -Dhttp.proxyUser=usernameProxy -Dhttp.proxyPassword=yourPassoword
la source
En utilisant un programme Java très simple «Demander une URL», j'ai pu répliquer le problème.
http.proxyUser
ethttp.proxyPassword
semblent être des options non standard, bien que populaires, car elles ne sont pas décrites dans la page de référence Java liée au didacticiel Gradle ; même si le manuel Gradle les mentionne.Il semble que les programmes Java qui souhaitent prendre en charge l'authentification proxy doivent le faire manuellement (et j'ai pu le faire en utilisant le code sur la page liée).
J'ai soumis ce problème (et un correctif) à l'outil de suivi des problèmes Gradle . Le problème GRADLE-1556 a été résolu dans 1.0-milestone-8 (février 2012)
la source
Vérifiez sur c: \ Users \ votre nom d'utilisateur \ .gradle \ gradle.properties:
la source
Créez un fichier appelé
gradle.properties
dans le dossier du projet où lebuild.gradle
fichier est présent. Ajoutez l'entrée suivanteSi vous utilisez DNS pour proxy, ajoutez-le comme
systemProp.https.proxyHost=www.proxysite.com
Pour IP, spécifiez simplement l'IP sur
http://
ouhttps://
Check doc officiel gradle pour plus de détails et la mise en place proxy au niveau mondial
la source
Il existe 2 façons d'utiliser Gradle derrière un proxy:
Ajouter des arguments en ligne de commande
(D'après le post de Guillaume Berche)
Ajoutez ces arguments dans votre commande gradle:
ou ces arguments si vous utilisez https:
Ajouter des lignes dans le fichier de configuration gradle
en
gradle.properties
ajouter les lignes suivantes:(pour l'
gradle.properties
emplacement du fichier, veuillez vous référer à la documentation officielle https://docs.gradle.org/current/userguide/build_environment.htmlEDIT: comme dit par @Joost: Un petit mais important détail que j'ai initialement négligé: notez que le nom d'hôte réel ne contient PAS la
http://
partie protocole de l'URL ...la source
http://
partie protocole de l'URL ...Basé sur la réponse de SourceSimian; cela a fonctionné sur les comptes d'utilisateurs de domaine Windows. Notez que le nom d' utilisateur n'a pas de domaine inclus,
la source
Dans le cas où j'essaye de configurer un proxy à partir d'Android Studio Apparence et comportement => Paramètres système => Proxy HTTP. Mais le proxy n'a pas fonctionné, je clique donc sur aucun proxy.
Je supprime donc toutes les propriétés commençant par systemProp par exemple - systemProp.http.nonProxyHosts = *. Local, localhost
la source
~/.gradle/gradle.properties
. Merci de l'avoir signalé.Une mise à jour de @sourcesimian et de @ kunal-b qui définit dynamiquement le nom d'utilisateur et le mot de passe s'ils sont configurés dans les propriétés du système.
Ce qui suit définit le nom d'utilisateur et le mot de passe s'ils sont fournis ou ajoute simplement l'hôte et le port si aucun nom d'utilisateur et mot de passe n'est défini.
la source
Si vous êtes derrière proxy et que vous utilisez eclipse, accédez à
Window Menu --> Preferences --> General --> Network Connections
. Sélectionnez les fournisseurs actifs comme «Manuel».Dans la section Entrées proxy, cliquez sur HTTPS, cliquez sur Modifier et ajoutez l'hôte et le port proxy. Si un nom d'utilisateur et un mot de passe sont requis, indiquez-le également. Cela a fonctionné pour moi!
la source
Si ce problème avec l'erreur HTTP 407 s'est produit uniquement avec les packages sélectionnés, le problème ne se situe pas dans le paramètre proxy et la connexion Internet. Vous pouvez même exposer votre PC à Internet via NAT et faire face à ce problème. Généralement, en même temps, vous pouvez télécharger les packages souhaités dans le navigateur. La seule solution que je trouve: supprimez le dossier .gradle dans votre profil (pas dans le projet). Après cela, synchronisez le projet, cela prendra beaucoup de temps mais restaurez tout.
la source