【号外号外!】

最终解决办法并不复杂,关键在于“遇见问题,怎么样层层分析,多条路径试错,最终解决问题的思路或者能力”——资深码农的核心竞争力之一

背景

今天结束完最近2个月的一个项目,开心鸭,IDEA切换代码到其它历史项目继续推进。咦,什么情况,原来编译好好的,这次怎么半天编译不动,超过5分钟——原本只要10多秒或者20多秒的,什么情况

多路径尝试,层层递进,终至解决

  • 路径A

原因分析——是不是其他软件开的多,电脑CPU和内存空闲比较少,所以build 比较慢,历史上偶尔遇见过

尝试办法——关闭耗费资源的软件,耐心等待

具体操作:

关闭office、vscode、vmware、Chrome浏览器只保留5个Tab页

开开心心的看公司的架构文档10分钟,回过头来看看,咦,什么情况,还在编译

结论:

Failed ——赶紧切换其他路径


  • 路径B

原因分析——可能最近哪里配置有更新,或者哪里出错了

尝试办法——重启(印象中,很多奇怪问题,通过重启软件或者电脑都能解决)

具体操作:

重启IDEA,等待5分钟,我去,海思编译不动

结论:

范特西——继续切换其他路径


  • 路径C——关键

原因分析——看来自个儿不行,求助百度或者谷歌了

尝试办法——百度搜索

具体操作:

提取搜索关键词——“IDEA 半天编译不动”,百度之(关键字提取十分重要,直接影响搜索结果质量

搜速到一篇相关博客 :https://blog.csdn.net/weixin_34850743/article/details/104291937

上面提到了暂时解决办法,及如下尝试办法(部分尝试过,其它耗时耗力,不予采纳):

  1. 扩展idea内存,无效。
  2. 重启电脑,无效,似乎也不是网络的问题。
  3. 切换本地仓库,无效。
  4. 清除缓存和索引,无效。
  5. 删除项目,重新引入,无效。
  6. 删除项目,重新下载,再导入idea,无效。
  7. 新建一个类,加上启动类的注解,在run方法前加一个sysout,无效。
  8. 关闭idea,项目导入eclipse,启动。重新打开idea,再看看是否能启动,无效。
  9. 卸载,重装.。
    1. 卸载重装当前版本2019.3,无效
    2. 重装2018.3.6,无效。
  10. 编辑Configuration,去掉build,改成mvn compile,暂时可以

继续看评论区:

网络禁用,这个不错,果断拔掉网线。编译顺畅了一点,不过报错,如下(关键信息:下载依赖包出错):

结论:

知道问题大致所在了——应该是最近升级gandle从5.1到6.5,导致 “相关依赖包下载超级缓慢导致”(去国外下载jar依赖包、github 源代码最近都很慢),联想到最近项目下载python 离线包


  • 路径D——最终方案

原因分析——“相关依赖包下载超级缓慢导致”

尝试办法——配置阿里云国内镜像或者公司服务器镜像

具体操作:

%GRADLE_USER_HOME%\.gradle目录下,新增下init.gradle件,填入如下内容(逻辑:根据依赖包的起始地址,切换不同的下载路径):

  1. allprojects{
  2. repositories {
  3. def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
  4. def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
  5. def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
  6. def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
  7. all { ArtifactRepository repo ->
  8. if(repo instanceof MavenArtifactRepository){
  9. def url = repo.url.toString()
  10. if (url.startsWith('https://repo1.maven.org/maven2/')) {
  11. project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
  12. remove repo
  13. }
  14. if (url.startsWith('https://jcenter.bintray.com/')) {
  15. project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
  16. remove repo
  17. }
  18. if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
  19. project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
  20. remove repo
  21. }
  22. if (url.startsWith('https://plugins.gradle.org/m2/')) {
  23. project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
  24. remove repo
  25. }
  26. }
  27. }
  28. maven { url ALIYUN_REPOSITORY_URL }
  29. maven { url ALIYUN_JCENTER_URL }
  30. maven { url ALIYUN_GOOGLE_URL }
  31. maven { url ALIYUN_GRADLE_PLUGIN_URL }
  32. }
  33. }

结论:

10多秒编译成功,好开心鸭,如下图:

注:

(1)全局配置阿里云镜像https://blog.csdn.net/lj402159806/article/details/78422953

2)阿里云镜像仓库官网及说明——需要及时同步官网更新变动https://maven.aliyun.com/mvn/guide

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

*******************************************************************************************

精力有限,想法太多,专注做好一件事就行

  • 我只是一个程序猿。5年内把代码写好,技术博客字字推敲,坚持零拷贝和原创
  • 写博客的意义在于锻炼逻辑条理性,加深对知识的系统性理解,锻炼文笔,如果恰好又对别人有点帮助,那真是一件令人开心的事

*******************************************************************************************

IDEA 半天卡住buid(编译)不动——解决办法(适用于maven及gradle)及定位思路的更多相关文章

  1. oracle执行update语句时卡住问题分析及解决办法

    转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值, ...

  2. Keil4 每次选build 编译(F7)都全部编译的解决办法

    Keil4 每次选build 编译(F7)都全部编译的解决办法 http://blog.csdn.net/wchengshen/article/details/50440079 Keil4 每次选bu ...

  3. 20190603 - CentOS 7 提示 Failed to load SELinux policy. Freezing 导致卡住不启动的解决办法

    现象 最近 Windows 和两台 Mac 混用,将 Windows VirtualBox 中安装的 CentOS 7 拷贝到 Mac 上. 启动 CentOS 7 时,图形界面进度卡在最后,按 Es ...

  4. IDEA 半天卡住buid(编译)不动

    [号外号外!] 最终解决办法并不复杂,关键在于"遇见问题,怎么样层层分析,多条路径试错,最终解决问题的思路或者能力"--资深码农的核心竞争力之一 背景 今天结束完最近2个月的一个项 ...

  5. 分享一个android debug模式,出现 waiting for debugger把界面卡住,取巧的解决办法

    使用android studio开发程序时,有时会出现 waiting for debugger 卡住界面,软件无法正常debug运行的情况,很多网友分享了一些解决办法,比如: 1 打开cmd进入命令 ...

  6. 在MAC平台下编译Ngnix ,由于MD5算法不能编译通过 解决办法

    近期想学习Ngnix 代码,前些日子,对”自己下手狠一次“, 买了MAC 本. 所以想在Mac 上编译,是必须的,不然对不起自己的内心. 不巧遇到了MD5算法编译的问题 src/core/ngx_cr ...

  7. 使用Crypto++库编译出错 解决办法

    错误信息: >------ 已启动生成: 项目: testCrypto++, 配置: Debug Win32 ------ >正在编译... >main.cpp >正在链接.. ...

  8. 【VS开发】VS2015没修改源文件也导致重新编译的解决办法

    在使用VS2010编译C++程序的时候,每次修改工程中的某一个文件,点击"生成-仅用于项目-仅生成**"时,往往都是整个工程都需要重新编译一遍.由于这个工程代码量太大,每次编译完成 ...

  9. Cygwin不能编译及解决办法

    最近不知道什么原因,以前使用cygwin编译Android动态库,现在不能使用了,报下面的错误. Android NDK: Host 'awk' tool is outdated. Please de ...

随机推荐

  1. [LeetCode]55. 跳跃游戏(贪心)

    题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: tr ...

  2. [Binder深入学习二]Binder驱动——基础数据结构二

    Userspace和KernelSpace进行交互时,大部分命令是通过 ioctl 实现的,在这个过程中,最重要的一个便是 BINDER_WRITE_READ 命令了. #define BINDER_ ...

  3. 关于弹性布局flex

    什么时候使用flex布局? 当页面排版涉及左右浮动.垂直居中等时,应使用flex布局来避免传统的盒式布局带来的一些Bug. 如何使用flex布局? 在目标元素的父元素设置csss属性.display: ...

  4. zookeeper(4) 网络

    zookeeper底层通过NIO进行网络传输,如果对NIO不是很熟悉,先参见java NIO.下面我们来逐步实现基于NIO的zookeeper实现,首先我们要定义应用层的通信协议. 传输协议 请求协议 ...

  5. Django中间件之SessionMiddleware源码分析

    settings.py文件中 MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', ] # from djang ...

  6. Class对象、反射、动态代理

    Class对象是所有类的根源,Object是所有对象的根源. 编译后的新类会产生一个Class对象,保存在同名的.class文件中.每个类都有一个Class对象,它包含了所有的与类有关的信息.所有的C ...

  7. python库之argparse

    先运行一个干净的argparse 由于没有添加任何参数,所以只能用自带的 -h(--help)参数 现在来加一个参数 所以echo为必填项 描述在-h时会出现 type=int指定参数只能是数字,否则 ...

  8. 遍历 Dictionary,你会几种方式?

    一:背景 1. 讲故事 昨天在 StackOverflow 上看到一个很有趣的问题,说: 你会几种遍历字典的方式,然后跟帖就是各种奇葩的回答,挺有意思,马上就要国庆了,娱乐娱乐吧,说说这种挺无聊的问题 ...

  9. springboot集成swagger文档

    //此处省略springboot创建过程 1.引入swagger相关依赖(2个依赖必须版本相同) <dependency> <groupId>io.springfox</ ...

  10. Java知识系统回顾整理01基础02面向对象01类和对象

    一.面向对象实例--设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一 ...