gradle下载更新依赖库失败的解决办法|gradle下载更新依赖库失败的解决办法 - 依赖库下载加速1000%



现在使用gradle来构建项目的越来越多,通过gradle能更轻松完成项目的依赖以及编译等工作。特别是Google的Android Studio这个富二代,开发的Android项目默认支持gradle,搞得gradle从一个默默无闻的小妹子直接晋升为新一代的国民女神!
跟gradle互动的确能带来很多快感,不过这个妹子远在异国他乡,国内又没有适合它的(网络)环境,没有一个很好的房子给她住(镜像库渠道来存储依赖包),所以很多人还是通过越洋电话来跟她沟通(国外的库来获取依赖),这样一来,如果那天聊的非常嗨,需要很长时间(依赖库太大),中途出现断线(下载失败、超时)的问题,就会很郁闷了,于是你重新联系,又是刚嗨起来,结果又断线了... ...你的一口老血就喷出来了!
不要笑,我就吐过几次,要不怎么会写这篇文章提醒你呢!别想了,说的就是你,要不你没事来找gradle下载更新依赖库失败的文章为毛啊!
【gradle下载更新依赖库失败的解决办法|gradle下载更新依赖库失败的解决办法 - 依赖库下载加速1000%】行了,不扯了,前面说那么多,就是要把具体问题讲清楚,下面来说说问题的解决办法。
首先,gradle一般会出现让咱们吐血的问题有两种情况:

  • 第一种情况是Android Studio的开发环境下,第一次安装gradle包或者自动安装gradle包的时候,gradle会自动将gradle-2.x-all.zip包进行安装或者更新
  • 第二种情况是使用gradle构建的项目在使用【./gradlew build】的时候,gradle自动下载更新项目依赖库

Android Studio下安装更新gradle加速 使用Android Studio编译项目的时候,当你在Terminal窗口敲出【gradle assemblerelease】时,如果gradle需要安装gradle包或者自动安装gradle包的时候,gradle会自动将gradle-2.x-all.zip下载到【Users\user\.gradle\wrapper\dists\gradle-*-all】一个UUID命名的目录下,如果你是2.8,就会下载到【Users\user\.gradle\wrapper\dists\gradle-2.8-all\ah86jmo43de9lfa8xg9ux3c4h】

但是下载... 太难了!


动不动就没连接了,一言不合就报错,还能不能愉快的开发了?
好吧,我来讲讲怎么用黑科技搞定这个问题:
下载前应该有这样的内容:

[plain]view plain copy print ?
  1. Download http://services.gradle.org/distributions/gradle-2.8-all.zip
  2. > 正在用吃奶的劲下载gradle ... > 66.4 MB/2.50 MB downloaded
过一会要么是下载停在哪儿,要不就报错,是吧!
打开迅雷:添加【http://services.gradle.org/distributions/gradle-2.8-all.zip】到下载任务,然后看着几百kb甚至几m的下载速度,是不是这种感觉:




好了,你可以合上嘴了,免得哈喇子流出来影响女神对你的印象,然后把刚刚下好的包(为什么这么快?因为叫闪电啊!),拷贝到【Users\user\.gradle\wrapper\dists\gradle-xxx-all\ah86jmo43de9lfa8xg9ux3c4h】目录下,重新执行【gradle assemblerelease】,OK!
不用看新闻联播,这个世界又美好了!


gradle构建的项目编译项目【./gradlew build】加速 前两年还在努力追(学习)maven这个妹子,好不容易到手,熟悉了,了解了,虽然中间出现一些不愉快(构建异常),但是总体来说,相处还不错,结果最近做项目用到SpringSecurity安全框架,发现这个作者居然用gradle来构建项目,了解了一下gradle,说是更极品女神[人美声甜腰细奶大发长活好不粘人](想想还是有点小激动),突然有种初恋的感觉(又要重新了解一个新的构建工具了),这不是让我犯错误吗(刚了解,肯定一堆错误)?我是那种喜新厌旧的人吗?(干这行的都知道是)好吧,我承认!
还等什么,那就上呗!
在github上clone一下SpringSecurity,clone完成,进入spring-security目录,直接【./gradlew install】搞起,没什么问题,然后【./gradlew build】,看到屏幕上夸夸夸一堆代码闪过,心里美滋滋的,想想,这么快就搞定了,不自己都不能相信了,突然一副画面出现在我眼前:



可是... ... 三个小时过去了,看到这个画面:

[plain]view plain copy print ?
  1. Download https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.pom
  2. Download https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.zip
  3. > Configuring > 54/54 projects > 129.33 MB/159.69 MB downloaded
然后... ... 四个小时过去了,看到这个画面:


[plain]view plain copy print ?
  1. Download https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.pom
  2. Download https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.zip
  3. > Configuring > 54/54 projects > 129.33 MB/159.69 MB downloaded

不要问我为什么按下Control + C,不要问我心里的感受,因为:




你想安慰我:在国内开发去下国外的资源,很多情况都是这样,你又能怎么办?
但是,谁说没有办法,又要拿出我的黑科技了!




将刚才链接中的
【https://repo1.maven.org/maven2/com/google/appengine/appengine-Java-sdk/1.9.23/appengine-java-sdk-1.9.23.zip】
放到迅雷,呵呵!
gradle下载更新依赖库失败的解决办法|gradle下载更新依赖库失败的解决办法 - 依赖库下载加速1000%
文章图片


天空飘来五个字:那都不是事!
然后找到gradle存放依赖包的目录,将这个包放进去:
gradle默认的依赖存放地址是:
Windows系统默认下载到:C:\Users\(用户名)\.gradle\caches\modules-2\files-2.1
Mac系统默认下载到:/Users/(用户名)/.gradle/caches/modules-2/files-2.1

另外,在这个目录下,需要将依赖库对应上,比如上面的
【https://repo1.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.23/appengine-java-sdk-1.9.23.zip】
你可以在gradle的files-2.1目录找到这个目录:
【com.google.appengine/appengine-java-sdk/1.9.23/c05c8fd5da7fa56eefa3d64f548dd0329e4126de/】

然后拷贝进去:
【com.google.appengine/appengine-java-sdk/1.9.23/c05c8fd5da7fa56eefa3d64f548dd0329e4126de/appengine-java-sdk-1.9.23.zip】
然后重新运行【./gradlew build】


[plain]view plain copy print ?
  1. MacBook-Pro:spring-security user$ ./gradlew build
  2. FAILURE: Build failed with an exception.
  3. * What went wrong:
  4. Could not resolve all dependencies for configuration ':runtime'.
  5. > Timeout waiting to lock artifact cache (/Users/user/.gradle/caches/modules-2). It is currently in use by another Gradle instance.
  6. Owner PID: 4844
  7. Our PID: 4932
  8. Owner Operation: resolve configuration ':classpath'
  9. Our operation: resolve configuration ':runtime'
  10. Lock file: /Users/user/.gradle/caches/modules-2/modules-2.lock
  11. * Try:
  12. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
  13. BUILD FAILED
  14. Total time: 1 mins 2.695 secs

我去,这是什么情况? 不是写的很清楚吗?文件被锁了!怎么办?删除这个文件不就行了嘛!

[plain]view plain copy print ?
  1. Lock file: /Users/user/.gradle/caches/modules-2/modules-2.lock



再运行【./gradlew build】,又是什么情况?已经说过了,文件被锁了?删除!不过记住,上次删除过的文件要重新删除一下!
[plain]view plain copy print ?
  1. :itest-context:generatePom
  2. FAILURE: Build failed with an exception.
  3. * What went wrong:
  4. Timeout waiting to lock task history cache (/Users/user/Projects/spring-security/.gradle/2.14/taskArtifacts). It is currently in use by another Gradle instance.
  5. Owner PID: 5011
  6. Our PID: 5086
  7. Owner Operation: Load task history
  8. Our operation: Load task history
  9. Lock file: /Users/user/Projects/spring-security/.gradle/2.14/taskArtifacts/cache.properties.lock
  10. * Try:
  11. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
  12. BUILD FAILED
  13. Total time: 1 mins 19.312 secs
  14. MacBook-Pro:spring-security user$ rm -rf /Users/user/Projects/spring-security/.gradle/2.14/taskArtifacts/cache.properties.lock
  15. MacBook-Pro:spring-security user$ rm -rf /Users/user/.gradle/caches/modules-2/modules-2.lock
  16. MacBook-Pro:spring-security user$ rm -rf /Users/user/.gradle/caches/2.14/plugin-resolution/cache.properties.lock
  17. MacBook-Pro:spring-security user$ rm -rf /Users/user/.gradle/caches/2.14/plugin-resolution/cache.properties.lock
  18. MacBook-Pro:spring-security user$ ./gradlew build



啊,世界终于美好了!可是,我又遇到了一个21M的jar包,怎么办?
如果下载速度能到100多k,就等一会呗!
如果几十kb甚至十几kb,老办法啊!

[plain]view plain copy print ?
  1. Download https://repo1.maven.org/maven2/org/jruby/jruby-complete/1.7.16.1/jruby-complete-1.7.16.1.jar
  2. > Building 11% > :docs:manual:asciidoctor > 3.06 MB/21.10 MB downloaded
不要问怎么找到gradle下对应的目录,因为上面已经说过了!

终于,在历经千辛万苦之后,看到了下面的内容:

[plain]view plain copy print ?
  1. :docs:guides:check UP-TO-DATE
  2. :docs:guides:build UP-TO-DATE
  3. :docs:manual:assemble UP-TO-DATE
  4. :docs:manual:check UP-TO-DATE
  5. :docs:manual:build UP-TO-DATE
  6. BUILD SUCCESSFUL
  7. Total time: 1 hrs 30 mins 47.848 secs
  8. This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.14/userguide/gradle_daemon.html
  9. 2016-08-20 18:32:58.964:INFO::Shutdown hook executing
  10. 2016-08-20 18:32:58.965:INFO::Stopped SslSocketConnector@0.0.0.0:60158
  11. 2016-08-20 18:32:59.473:INFO:/cas:Closing Spring root WebApplicationContext
  12. 2016-08-20 18:32:59.589:INFO::Shutdown hook complete
  13. 2016-08-20 18:33:00.593:INFO::Stopped SslSocketConnector@0.0.0.0:60157
  14. 2016-08-20 18:33:00.593:INFO::Stopped SelectChannelConnector@0.0.0.0:60156
  15. 2016-08-20 18:33:01.101:INFO:/cas-sample:Closing Spring root WebApplicationContext
  16. 2016-08-20 18:33:01.113:INFO::Shutdown hook complete

恭喜你,大功告成!
感觉自己又相信爱情了!

    推荐阅读