使用gradle-wrapper时如何在不下载的情况下在本地系统中使用gradle zip


88

我正在尝试使用gradle-wrapper(gradlew)构建一个gradle项目。

当我用构建时./gradlew build,它输出文本

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

而且我已经分别下载了gradle-1.11-bin.zip,并且我不想在构建时再次下载它。

因此,我应该在哪里将gradle-1.11-bin.zip放入我的项目或系统中,而不必再次下载?

gradle / wrapper / gradle-wrapper.properties如下。

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

而且我尝试将gradle-1.11-bin.zip复制到gradle / wrapper / dists中,但这并不能解决问题。

Answers:


111

gradle-wrapper文档中,我在61.1节中找到了。组态

如果您不希望在通过gradlew构建项目时进行任何下载,只需将Gradle发行版zip添加到包装配置指定的位置的版本控件中即可。支持相对URL-您可以相对于gradle-wrapper.properties文件的位置指定分发文件。

因此,我将distributionUrl 属性更改gradle-wrapper.properties

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

于是,我做了一个副本gradle-1.11-bin.zipgradle/wrapper/

然后,./gradlew build下载zip的本地副本并构建项目。


9
这错过了包装器的要点,那就是Gradle是为所有构建用户自动下载并安装的。如果您希望使用本地安装,请将其放在PATH上并调用gradle而不是gradlew
Peter Niederwieser 2014年

1
@PeterNiederwieser是的,你是对的。我已经设置了PATH,但是我想尝试使用包装器,因为这是推荐的方式,但是我不想再次下载gradle zip。另外,我是新手。
TheKojuEffect 2014年

31
如果您需要将软件发送给没有Internet访问权限的人,这是一件大事。是的,这确实发生了;有些计算机没有连接到Internet。
克里斯·琼斯

2
事实是,我永远都不能以太慢的速度下载gradle
Shaw

3
或在今天(办公室网络非常缓慢)的一天,这是一个不断发展的好方法。...只需要记住,一旦网络速度恢复正常即可恢复。如果您想测量带宽,这也是一个好技巧。
2013年

39

修改gradle / gradle-wrapper.properties

视窗:

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

Linux:

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

2
通常,我使用Windows版本的Android Studio,但有时我在Linux操作系统中打开项目。是否可以通过distributionUrl这样一种方式定义Gradle ZIP包,而无需更改distributionUrl值即可在两个OS上访问?
ir-tech

1
@ ir-tech,您可以使用相对路径,例如file \:///../lib/gradle-2.2.1-all.zip
AaA

//不要使用android 8,因为它将继续下载坡度发行版,请使用7年级的ionic cordova平台添加android@8.0.0 // //将运行ionic cordova平台添加android@~7.1.1 --save然后在下面运行,这次它应该会成功(为我工作)离子cordova构建android
Anand_5050

15

只需将下载的gradle文件拖到浏览器地址栏中,然后从地址栏中复制地址并按如下所示更改gradle / wrapper / gradle-wrapper.properties即可:

distributionUrl=ADDRESS THAT COPY FROM YOUR BROWSER

例:

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

或者您可以将gradle.zip文件复制到wrapper文件夹,然后使用相对路径:

distributionUrl=gradle.zip

不工作 distributionUrl在离子
Cordova

8

我这样做是为了避免为当前和将来的项目编辑所有的gradle包装器。

  • gradle-wrapper.properties在您的项目文件夹中找到您的文件夹(例如./gradle/wrapper/gradle-wrapper.properties
  • 使用Sublime Text之类的文本编辑器打开文件以找到该distributionUrl行(例如distributionUrl=http\://services.gradle.org/distributions/gradle-2.10-bin.zip

需要的gradle二进制存档是gradle-2.10-bin.zip。另一个版本gradle-2.10-all.zip包括所有内容,包括源代码和文档。

请注意,每个项目附带不同版本的gradle发行版,您可以将版本更改为gradle-x.xx-XXX.zip包含二进制文件的版本()。(例如gradle-2.11-bin.zip| gradle-2.11-all.zip)。

gradlew.bat在window或gradlelinux上执行以启动包装程序来构建项目。

它将开始下载gradle-2.10-bin.zip.gradle\wrapper\dists您的主目录中(例如C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-bin)。每个指定的gradle版本仅下载一次。

如果您已经下载了档案,则可以使用Ctrl+终止下载C

进入gradle下载位置,C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-all\78v82fsf226usgvgh7q2ptcvif将您自己的副本复制gradle-2.10-bin.zip到该目录中,然后删除该gradle-2.10-all.zip.part目录中的。

就这样。返回您的项目目录执行gradlew.bat,它将使用您的本地副本而不是下载新副本。


@ wcc526的结帐答案,它工作正常且易于实现。
Banee Ishaque K

4

该解决方案不适用于我,但可以帮助我找到正确的方法,因此,如果要脱机安装gradle,请按照以下步骤操作:

1-在gradle目录下的项目中打开此文件(gradle-wrapper.properties)

2-在最后一行,您将找到gradle版本,下载该版本或从另一台PC复制文件

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

下载链接将如下所示:http : //services.gradle.org/distributions/gradle-3.3-bin.zip

3-打开此位置C:\ Users \ userName.gradle \ wrapper \ dists \ gradle-3.3-all,并确保只有一个文件夹(名称与设备无关),如果还有其他文件夹删除所有它们,然后在android studio上按gradle sync,这将自动生成另一个带有随机名称的文件夹。

4-打开该文件夹,并确保屏幕快照中只有最后两个文件。

5-将下载的zip文件移动到该文件夹​​中

6-再次在android studio上按sync gradle,假设gradle将正常工作。

在此处输入图片说明


2

我发现,要做到这一点刚开始我的XAMPP服务器的另一个最简单的方法,然后做了一个文件夹gradlehtdocs。我gradle-4.4-all.zip在该文件夹中添加了压缩文件。将发布网址更改为distributionUrl=http\://localhost/gradle/gradle-4.4-all.zip 我重新启动了android,并且同步完成,没有任何问题。


0

我下载到

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

在Eclipse中,我声明: 在此处输入图片说明


然后,我可以非常快速地创建新的Gradle项目(带有包装器),无需下载。(比此解决方案还容易)


是的,它很快。由于与其他答案不同,它使用系统中可用的gradle,而不是通过http或文件协议下载gradle发行版,然后解压缩并执行。
巴尼·伊沙克

就我而言,首先我使用@edward anderson的方法进行地理定位。然后切换到wcc526的方法(这是TheKojuEffect的方法的修改),最后是该方法。
Banee Ishaque K

但是现在我有这种方法的问题。我在系统上使用gradle-4.0-rc-3。但是该版本无法运行最新的android studio(我认为最新版本是3.0-alpha6,但我有3.0-alpha5)-它始终受最新支持的gradle版本错误的影响,是gradle-4.0-milestone-1,您的版本是4.0- rc-3。我必须将我的系统gradle降级为4.0-milestone-1或始终将gradle包装器与android studio项目一起使用。有没有解决此问题的方法?
巴尼·伊沙克

仅使gradle在您的IDE中工作,而不在gradle命令行中工作,是一种无法使用或信任您的构建工具执行任何操作的好方法。验证命令行构建成功后,才应尝试使IDE工作。相反,这样做是一种很好的方式,可以浪费数小时和数天的时间来试图找出为什么事情在您和其他人的机器上随机且不同地破裂……
Ajax

0

创建本地服务器以模拟https下载(可能有点复杂),但可以正常工作
1.安装tomcat,然后解压缩并执行E:\apache-tomcat-8.5.4\bin\startup.bat

2.putgradle-2.14.1-all.zipE:\apache-tomcat-8.5.4\webapps\ROOT\distributions

3.像这样更改URLdistributionUrl=http\://localhost:8080/distributions/gradle-2.14.1-all.zip
现在可以照常运行


@ wcc526的结帐答案,它工作正常且易于实现。
Banee Ishaque K

0

当您将文件gradle-5.0-rc-5-bin.zip放入 示例时,请复制路径:路径C:/ My doc / tools

如果路径中有空格,请用%20进行更改

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

并执行命令:

$ gradlew wrapper --gradle-version 5.0-rc-5

0

//不要使用android 8,因为它将继续下载7年级的发行版

离子Cordova平台添加android@8.0.0

//这将运行

离子Cordova平台添加android@~7.1.1 --save

然后在下面运行,这一次应该会成功(对我有用)

离子科尔多瓦建立android

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.