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

The*_*ect 73 gradle gradlew

我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

我已经尝试将gradle-1.11-bin.zip复制到gradle/wrapper/dists中,但这并没有解决问题.

The*_*ect 90

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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 如果您需要将软件发送给无法访问Internet的人,这是一个大问题.是的,那是真正发生的事情; 有些计算机未连接到Internet. (30认同)
  • 这错过了包装器的一个要点,即为所有构建用户自动下载和安装Gradle.如果您更喜欢使用本地安装,请将其放在PATH上并调用`gradle`而不是`gradlew`. (9认同)
  • 或者像今天这样的办公室网络非常慢,这是一个很好的黑客继续向前发展....只需要记住在网络速度恢复正常后恢复.如果你有计量带宽我也认为这也是一个好方法. (3认同)
  • 事实是,我永远不能下载gradle in ternimal,太慢了 (2认同)
  • 这对于企业使用非常重要。我们的构建服务器不允许访问互联网。所有依赖项都从 Nexus 获取,但包装器始终是一个问题并停止了 gradle 的采用。中央安装可以解决它,但您需要所有可能的 gradle 版本,因为每个构建都可以使用它的特定版本。然而,最好的解决方案是也从 nexus 获取 zip,但此更改请求被拒绝。 (2认同)

wcc*_*526 29

修改gradle/gradle-wrapper.properties

视窗:

distributionUrl=file\:/d:/gradle-2.2.1-all.zip
Run Code Online (Sandbox Code Playgroud)

Linux的:

distributionUrl=file\:/tmp/gradle-2.2.1-all.zip
Run Code Online (Sandbox Code Playgroud)

  • 通常,我使用Windows版本的Android Studio,但有时我在Linux操作系统中打开项目。是否可以以这样的方式定义`distributionUrl`以便在不更改`distributionUrl`值的情况下在两个操作系统上均可访问Gradle ZIP包? (2认同)
  • @ir-tech,您可以使用相对路径,例如 file\:///../lib/gradle-2.2.1-all.zip (2认同)

Ahm*_*avi 12

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

distributionUrl=ADDRESS THAT COPY FROM YOUR BROWSER
Run Code Online (Sandbox Code Playgroud)

例:

distributionUrl=file:///E:/gradle/gradle-4.1-all.zip
Run Code Online (Sandbox Code Playgroud)

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

distributionUrl=gradle.zip
Run Code Online (Sandbox Code Playgroud)


Soj*_*axi 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在窗口或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,它将使用您的本地副本而不是下载新的副本.