Preciso de acesso à web da Gradle por meio de um servidor proxy para usar a integração da Gradle / Artifactory para o Jenkins. Para reduzir possíveis causas de problemas, adiciono manualmente o plug-in Artifactory em build.gradle e o executo na linha de comando:
apply {
apply from: "http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle"
}
Após esta descrição, especifiquei o seguinte em .gradle / gradle.properties no meu diretório pessoal:
systemProp.http.proxyHost=hostname
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=de\\username
systemProp.http.proxyPassword=xxx
Com a configuração de proxy acima (que é conhecida por funcionar), ela falha:
11: 33: 17.699 [ERRO] [org.gradle.BuildExceptionReporter] Causado por: java.io.IOException: O servidor retornou o código de resposta HTTP: 407 para o URL: http://gradle.artifactoryonline.com/gradle/plugins/org/ jfrog / buildinfo / build-info-extractor-gradle / 1.0.1 / artifactoryplugin-1.0.1.gradle
Eu tenho dois servidores proxy para escolher e um sempre responde com 407
( autenticação de proxy necessária ), o outro com 502
( gateway incorreto); portanto, obviamente, as opções proxyHost e proxyPort são usadas.
Como o nome de usuário (com base em um usuário do Active Directory) contém uma barra invertida, tentei ambos \\
e \
, mas nenhum funcionou. O usuário especificado é diferente do usuário conectado à máquina e ao Active Directory. As credenciais deste usuário não são válidas para o proxy, portanto, preciso poder especificar um usuário diferente.
Definir as mesmas opções na GUI de Jenkins ou Artifactory funcionou.
fonte
Respostas:
Refinamento sobre a resposta de Daniel:
Configuração de proxy somente HTTP
Configuração somente de HTTPS Proxy
Configuração de proxy HTTP e HTTPS
Configuração de proxy com usuário e senha
trabalhou para mim (com
gradle.properties
homedir ou dir de projeto, a construção ainda estava falhando). Obrigado por apontar o problema para a gradle que deu essa solução alternativa. Consulte o documento de referência em https://docs.gradle.org/current/userguide/build_environment.html#sec:accessing_the_web_via_a_proxyAtualizar Você também pode colocar essas propriedades em
gradle-wrapper.properties
(consulte: https://stackoverflow.com/a/50492027/474034 ).fonte
~/.gradle/gradle.properties
certifique-se prefixar as propriedades comsystemProp
, como, por exemplosystemProp.http.proxyHost=127.0.0.1
-Dhttp.proxyHost
e os gostos) comoJAVA_OPTS
variável de ambiente para fazê-lo funcionar.Esta é a minha gradle.properties, observe as partes HTTPS
fonte
No meu
build.gradle
eu tenho a seguinte tarefa, que usa as configurações usuais de proxy linuxHTTP_PROXY
eHTTPS_PROXY
, a partir do ambiente de shell:fonte
Para mim, trabalha adicionando essa configuração no arquivo gradle.properties do projeto, onde o arquivo build.gradle é:
Onde: proxyUrl é o URL do servidor proxy ( http: // ..... )
proxyPort é a porta (geralmente 8080)
USER é meu usuário de domínio
SENHA, minha senha
Nesse caso, o proxy para http e https é o mesmo
fonte
Tente o seguinte:
gradle -Dhttp.proxyHost=yourProxy -Dhttp.proxyPort=yourPort -Dhttp.proxyUser=usernameProxy -Dhttp.proxyPassword=yourPassoword
fonte
Usando um programa Java "Request a URL" muito simples, consegui replicar o problema.
http.proxyUser
ehttp.proxyPassword
parecem ser opções não padronizadas, embora populares, pois não são descritas na página de referência do Java vinculada ao tutorial Gradle ; mesmo que o manual Gradle os mencione.Parece que os programas Java que desejam oferecer suporte à autenticação de proxy precisam fazer isso manualmente (e eu pude fazer isso usando o código na página vinculada).
Enviei esse problema (e uma correção) para o rastreador de problemas do Gradle . O problema levantado GRADLE-1556 foi resolvido no 1.0-milestone-8 (fevereiro de 2012)
fonte
Confira em c: \ Users \ seu nome de usuário \ .gradle \ gradle.properties:
fonte
Crie um arquivo chamado
gradle.properties
dentro da pasta do projeto em que obuild.gradle
arquivo está presente. Adicione a seguinte entradaSe você estiver usando DNS para proxy, adicione-o como
systemProp.https.proxyHost=www.proxysite.com
Para o IP, apenas especifique o IP sem
http://
ouhttps://
verifique o documento oficial do gradle para obter mais detalhes e configurar o proxy em nível global
fonte
Existem duas maneiras de usar o Gradle atrás de um proxy:
Adicionar argumentos na linha de comando
(Do post de Guillaume Berche)
Adicione estes argumentos no seu comando gradle:
ou esses argumentos se você estiver usando https:
Adicionar linhas no arquivo de configuração gradle
em
gradle.properties
adicionar as seguintes linhas:(para
gradle.properties
localização do arquivo, consulte a documentação oficial https://docs.gradle.org/current/userguide/build_environment.htmlEDIT: como dito por @Joost: Um detalhe pequeno, mas importante, que eu ignorei inicialmente: observe que o nome do host real NÃO contém
http://
parte do protocolo da URL ...fonte
http://
parte de protocolo do URL ...Baseado na resposta do SourceSimian; isso funcionou nas contas de usuário do domínio do Windows. Observe que o nome de usuário não possui domínio incluído,
fonte
Uma atualização para @sourcesimian 's e @ kunal-b que definem dinamicamente o nome de usuário e a senha, se configurados nas propriedades do sistema.
A seguir, define o nome de usuário e a senha, se fornecidos, ou apenas adiciona o host e a porta, se nenhum nome de usuário e senha estiverem definidos.
fonte
Caso eu tente configurar o proxy no android studio Appearance & Behavior => Configurações do sistema => HTTP Proxy. Mas o proxy não funcionou, então não clico em proxy.
Portanto, removo todas as propriedades que começam com systemProp, por exemplo - systemProp.http.nonProxyHosts = *. Local, localhost
fonte
~/.gradle/gradle.properties
. Obrigado por apontar isso.Se você estiver atrás do proxy e usando o eclipse, acesse
Window Menu --> Preferences --> General --> Network Connections
. Selecione os fornecedores ativos como 'Manual'.Na seção Entradas de proxy, clique em HTTPS, clique em Editar e adicione host e porta do proxy. Se for necessário nome de usuário e senha, forneça isso também. Funcionou para mim!
fonte
Se esse problema com o erro HTTP 407 ocorreu apenas nos pacotes selecionados, o problema não está na configuração de proxy e na conexão com a Internet. Você pode até expor seu PC à Internet através do NAT e ainda enfrentará esse problema. Normalmente, ao mesmo tempo, você pode baixar os pacotes desejados no navegador. A única solução que encontro: exclua a pasta .gradle no seu perfil (não no projeto). Depois dessa sincronização, o projeto levará muito tempo, mas restaurará tudo.
fonte