Como usar gradle zip no sistema local sem fazer download ao usar gradle-wrapper

88

Estou tentando construir um projeto gradle com gradle-wrapper ( gradlew).

Quando eu construo com ./gradlew build, ele produz texto

Baixando http://services.gradle.org/distributions/gradle-1.11-bin.zip

E eu já baixei gradle-1.11-bin.zip separadamente e não quero baixá-lo novamente quando eu construir.

Então, onde devo colocar gradle-1.11-bin.zip em meu projeto ou sistema para não ter que fazer o download novamente?

gradle / wrapper / gradle-wrapper.properties é o seguinte.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-bin.zip

E tentei copiar gradle-1.11-bin.zip para gradle / wrapper / dists, o que não resolveu o problema.

TheKojuEffect
fonte

Respostas:

111

A partir da documentação do gradle-wrapper , encontrei na seção 61.1. Configuração

Se você não quiser que nenhum download aconteça quando seu projeto for compilado via gradlew, basta adicionar o zip de distribuição do Gradle ao seu controle de versão no local especificado pela configuração do wrapper. Um URL relativo é suportado - você pode especificar um arquivo de distribuição relativo à localização do arquivo gradle-wrapper.properties.

Então, mudei a distributionUrl propriedade em gradle-wrapper.propertiespara

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=gradle-1.11-bin.zip

Em seguida, fiz uma cópia de gradle-1.11-bin.zipem gradle/wrapper/.

Em seguida, ./gradlew buildbaixou a cópia local do zip e construiu o projeto.

TheKojuEffect
fonte
9
Isso omite um ponto principal do wrapper, que é que o Gradle é baixado e instalado automaticamente para todos os usuários do build. Se você preferir usar uma instalação local, coloque-a em seu PATH e execute em gradlevez de gradlew.
Peter Niederwieser,
1
@PeterNiederwieser Sim, você está certo. Eu configurei o PATH, mas queria experimentar o wrapper, pois é a forma recomendada, mas não queria baixar o gradle zip novamente. Além disso, sou novo no Gradle.
TheKojuEffect
31
Isso é muito importante se você precisar enviar software para alguém que não tem acesso à Internet. Sim, isso é algo que realmente acontece; existem computadores que não estão conectados à Internet.
Chris Jones
2
A verdade é que nunca consigo fazer o download do Gradle em ternimal, muito lento
Shaw
3
Ou em um dia como hoje, quando a rede do escritório está muito lenta, este é um bom hack para seguir em frente. ... só preciso lembrar de reverter quando as velocidades da rede estiverem normais novamente. Também é um bom truque se você mediu a largura de banda, suponho.
reverendo de
39

Modifique o gradle / gradle-wrapper.properties

Janelas:

distributionUrl=file\:/d:/gradle-2.2.1-all.zip

linux:

distributionUrl=file\:/tmp/gradle-2.2.1-all.zip
wcc526
fonte
2
Normalmente, eu uso a versão windows do Android Studio, mas às vezes eu abro meus projetos em um sistema operacional Linux. É possível definir de distributionUrlforma que o pacote Gradle ZIP seja acessível em ambos os sistemas operacionais sem alterar o distributionUrlvalor?
ir-tech de
1
@ ir-tech, você pode usar o caminho relativo, como arquivo \: ///../lib/gradle-2.2.1-all.zip
AaA
// Não use o Android 8, pois ele continuará baixando a distribuição de grau, use a plataforma cordova iônica de grau 7 add [email protected] // Isso executará a plataforma cordova iônica add android@~7.1.1 --save Em seguida, execute abaixo e desta vez deve obter sucesso (funcionou para mim) cordova iônica construir android
Anand_5050
15

Basta arrastar o arquivo gradle baixado na barra de endereço do navegador e, em seguida, copiar o endereço da barra de endereço e alterar gradle / wrapper / gradle-wrapper.properties como segue:

distributionUrl=ADDRESS THAT COPY FROM YOUR BROWSER

exemplo:

distributionUrl=file:///E:/gradle/gradle-4.1-all.zip

ou você pode copiar o arquivo gradle.zip para a pasta wrapper e usar o caminho relativo:

distributionUrl=gradle.zip
Ahmad Dehnavi
fonte
Não está funcionando. DistributionUrl get auto correct to https \: //services.gradle.org/distributions/gradle-4.10.3-all.zip on ionic Cordova build android
Anand_5050
8

Isso é o que fiz para evitar a edição de todos os invólucros gradle para projetos atuais e futuros.

  • Localize o seu gradle-wrapper.propertiesna pasta do projeto (por exemplo ./gradle/wrapper/gradle-wrapper.properties)
  • abra o arquivo com um editor de texto como Sublime Text para localizar a distributionUrllinha (por exemplo,distributionUrl=http\://services.gradle.org/distributions/gradle-2.10-bin.zip

O arquivo binário gradle necessário é gradle-2.10-bin.zip. Outra versão gradle-2.10-all.zipinclui tudo, incluindo código-fonte e documentação.

Observe que cada projeto é fornecido com versões diferentes de distribuições gradle e você pode alterar a versão para aquela que possui ( gradle-x.xx-XXX.zip) que inclui o binário. (por exemplo. gradle-2.11-bin.zip| gradle-2.11-all.zip).

Execute gradlew.batna janela ou gradleno Linux para iniciar o wrapper para construir o projeto.

Ele vai começar a baixar o gradle-2.10-bin.zipao .gradle\wrapper\distsem seu diretório home (ex. C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-bin). Este download acontece apenas uma vez para cada versão especificada do Gradle.

Se você já baixou o arquivo antes, pode encerrar o download usando Ctrl+C

Vá para o local de download do Gradle, C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-all\78v82fsf226usgvgh7q2ptcvifcopie sua própria cópia gradle-2.10-bin.zippara esse diretório e, em seguida, exclua o gradle-2.10-all.zip.partnesse diretório.

Isso é tudo. Volte para o diretório do projeto para executar gradlew.bate ele usará sua cópia local em vez de baixar uma nova.

Sojimaxi
fonte
verifique a resposta de @ wcc526, está funcionando bem e mais fácil de implementar.
Banee Ishaque K
4

Esta solução não funcionou para mim, mas me ajudou a encontrar o caminho certo, então se você quiser instalar o Gradle offline, siga estas etapas:

1- em seu projeto no diretório gradle, abra este arquivo (gradle-wrapper.properties)

2- na última linha você encontrará a versão do gradle, baixe essa versão ou copie o arquivo de outro pc

distributionUrl=http\://services.gradle.org/distributions/gradle-3.3-bin.zip

O link de download será assim: http://services.gradle.org/distributions/gradle-3.3-bin.zip

3- abra este local C: \ Users \ userName.gradle \ wrapper \ dists \ gradle-3.3-all e certifique-se de que é apenas uma pasta (o nome não importa, é diferente nos dispositivos) se houver qualquer outra pasta deletar todos eles e pressione gradle sync no android studio, que irá gerar outra pasta automática com um nome aleatório.

4- abra essa pasta e certifique-se de que possui apenas os dois últimos arquivos da captura de tela.

5- mova o arquivo zip que você baixou para essa pasta

6 - pressione sync gradle no android studio novamente, suponha que o gradle funcionará bem.

insira a descrição da imagem aqui

Mohamed ElSawaf
fonte
2

Descobri outra maneira mais fácil de fazer isso: apenas iniciei meu servidor XAMPP e criei uma pasta gradledentro dele htdocs. Eu adicionei o arquivo compactado gradle-4.4-all.zipdentro dessa pasta. Alterei o url de distribuição para distributionUrl=http\://localhost/gradle/gradle-4.4-all.zip Reiniciei o android e a sincronização foi concluída sem nenhum problema.

Amit Ray
fonte
0

Eu baixei para

C:\data\Setup\Development\Gradle 2.11\gradle-2.11-all.zip

dentro do Eclipse, eu declaro: insira a descrição da imagem aqui


Então eu crio um novo projeto Gradle (com wrapper) muito rápido, sem necessidade de download. (Mais fácil do que esta solução )

Do Nhu Vy
fonte
sim, é rápido. porque ao contrário de outras respostas, ele usa o gradle disponível no sistema do que baixar uma distribuição do gradle via http ou protocolo de arquivo, descompactando e executando.
Banee Ishaque K
No meu caso, primeiro eu geo com o método de @edward anderson. em seguida, mudou para o método wcc526 (é uma modificação do método TheKojuEffect), pelo menos para este método.
Banee Ishaque K
Mas agora tenho um problema com esse método. estou usando o gradle-4.0-rc-3 no meu sistema. mas essa versão não funciona no Android Studio mais recente (acho que a versão mais recente é 3.0-alpha6, mas eu tenho 3.0-alpha5) - sempre os erros pela versão gradle mais recente suportada é gradle-4.0-milestone-1, sua versão é 4.0- rc-3. Tenho que fazer o downgrade do gradle do meu sistema para 4.0-milestone-1 ou sempre usar o gradle wrapper com projetos do Android Studio. existe alguma solução alternativa para este problema?
Banee Ishaque K
Apenas fazer o gradle funcionar em seu IDE, mas não na linha de comando do gradle, é uma ótima maneira de não poder usar ou confiar em sua ferramenta de construção para fazer nada. Você só deve tentar fazer o IDE funcionar APÓS verificar se a construção da linha de comando foi bem-sucedida. Fazer o contrário é uma ótima maneira de perder horas e dias de suas vidas tentando descobrir por que as coisas quebram de forma aleatória e diferente na sua máquina e na de todos os outros ...
Ajax
0

crie um servidor local para simular o download de https (talvez um pouco complexo), mas funciona
1. instale o tomcat , descompacte e executeE:\apache-tomcat-8.5.4\bin\startup.bat

2. colocar gradle-2.14.1-all.zipparaE:\apache-tomcat-8.5.4\webapps\ROOT\distributions

3. alterar o url como este distributionUrl=http\://localhost:8080/distributions/gradle-2.14.1-all.zip
agora executado normalmente

Edward Anderson
fonte
verifique a resposta de @ wcc526, está funcionando bem e mais fácil de implementar.
Banee Ishaque K
0

copie o caminho onde colocou o arquivo gradle-5.0-rc-5-bin.zip example: path C: / My doc / tools

se você tiver alguns espaços no seu caminho mude-o com% 20

arquivo: /// C: /My%20doc/tools/gradle-5.0-rc-5-bin.zip

e execute o comando:

$ gradlew wrapper --gradle-version 5.0-rc-5
Aek Dadi
fonte
0

// Não use o Android 8, pois ele continuará baixando a distribuição da nota, use a nota 7

plataforma iônica cordova add [email protected]

// Isso vai rodar

plataforma iônica cordova add android@~7.1.1 --save

Então execute abaixo e desta vez deve obter sucesso (funcionou para mim)

Cordova iônica construir android

Anand_5050
fonte