IDEA 半天卡住buid(编译)不动——解决办法(适用于maven及gradle)及定位思路
【号外号外!】
最终解决办法并不复杂,关键在于“遇见问题,怎么样层层分析,多条路径试错,最终解决问题的思路或者能力”——资深码农的核心竞争力之一
背景
今天结束完最近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
上面提到了暂时解决办法,及如下尝试办法(部分尝试过,其它耗时耗力,不予采纳):
- 扩展idea内存,无效。
- 重启电脑,无效,似乎也不是网络的问题。
- 切换本地仓库,无效。
- 清除缓存和索引,无效。
- 删除项目,重新引入,无效。
- 删除项目,重新下载,再导入idea,无效。
- 新建一个类,加上启动类的注解,在run方法前加一个sysout,无效。
- 关闭idea,项目导入eclipse,启动。重新打开idea,再看看是否能启动,无效。
- 卸载,重装.。
- 卸载重装当前版本2019.3,无效
- 重装2018.3.6,无效。
- 编辑Configuration,去掉build,改成mvn compile,暂时可以
继续看评论区:
网络禁用,这个不错,果断拔掉网线。编译顺畅了一点,不过报错,如下(关键信息:下载依赖包出错):
结论:
知道问题大致所在了——应该是最近升级gandle从5.1到6.5,导致 “相关依赖包下载超级缓慢导致”(去国外下载jar依赖包、github 源代码最近都很慢),联想到最近项目下载python 离线包
- 路径D——最终方案
原因分析——“相关依赖包下载超级缓慢导致”
尝试办法——配置阿里云国内镜像或者公司服务器镜像
具体操作:
%GRADLE_USER_HOME%\.gradle目录下,新增下init.gradle
文件,填入如下内容(逻辑:根据依赖包的起始地址,切换不同的下载路径):
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
if (url.startsWith('https://plugins.gradle.org/m2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
maven { url ALIYUN_JCENTER_URL }
maven { url ALIYUN_GOOGLE_URL }
maven { url ALIYUN_GRADLE_PLUGIN_URL }
}
}
结论:
10多秒编译成功,好开心鸭,如下图:
注:
(1)全局配置阿里云镜像:https://blog.csdn.net/lj402159806/article/details/78422953
(2)阿里云镜像仓库官网及说明——需要及时同步官网更新变动:https://maven.aliyun.com/mvn/guide
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
*******************************************************************************************
精力有限,想法太多,专注做好一件事就行
- 我只是一个程序猿。5年内把代码写好,技术博客字字推敲,坚持零拷贝和原创
- 写博客的意义在于锻炼逻辑条理性,加深对知识的系统性理解,锻炼文笔,如果恰好又对别人有点帮助,那真是一件令人开心的事
*******************************************************************************************
IDEA 半天卡住buid(编译)不动——解决办法(适用于maven及gradle)及定位思路的更多相关文章
- oracle执行update语句时卡住问题分析及解决办法
转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值, ...
- Keil4 每次选build 编译(F7)都全部编译的解决办法
Keil4 每次选build 编译(F7)都全部编译的解决办法 http://blog.csdn.net/wchengshen/article/details/50440079 Keil4 每次选bu ...
- 20190603 - CentOS 7 提示 Failed to load SELinux policy. Freezing 导致卡住不启动的解决办法
现象 最近 Windows 和两台 Mac 混用,将 Windows VirtualBox 中安装的 CentOS 7 拷贝到 Mac 上. 启动 CentOS 7 时,图形界面进度卡在最后,按 Es ...
- IDEA 半天卡住buid(编译)不动
[号外号外!] 最终解决办法并不复杂,关键在于"遇见问题,怎么样层层分析,多条路径试错,最终解决问题的思路或者能力"--资深码农的核心竞争力之一 背景 今天结束完最近2个月的一个项 ...
- 分享一个android debug模式,出现 waiting for debugger把界面卡住,取巧的解决办法
使用android studio开发程序时,有时会出现 waiting for debugger 卡住界面,软件无法正常debug运行的情况,很多网友分享了一些解决办法,比如: 1 打开cmd进入命令 ...
- 在MAC平台下编译Ngnix ,由于MD5算法不能编译通过 解决办法
近期想学习Ngnix 代码,前些日子,对”自己下手狠一次“, 买了MAC 本. 所以想在Mac 上编译,是必须的,不然对不起自己的内心. 不巧遇到了MD5算法编译的问题 src/core/ngx_cr ...
- 使用Crypto++库编译出错 解决办法
错误信息: >------ 已启动生成: 项目: testCrypto++, 配置: Debug Win32 ------ >正在编译... >main.cpp >正在链接.. ...
- 【VS开发】VS2015没修改源文件也导致重新编译的解决办法
在使用VS2010编译C++程序的时候,每次修改工程中的某一个文件,点击"生成-仅用于项目-仅生成**"时,往往都是整个工程都需要重新编译一遍.由于这个工程代码量太大,每次编译完成 ...
- Cygwin不能编译及解决办法
最近不知道什么原因,以前使用cygwin编译Android动态库,现在不能使用了,报下面的错误. Android NDK: Host 'awk' tool is outdated. Please de ...
随机推荐
- [LeetCode] 22. 括号生成(回溯/DP)
题目 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()( ...
- 口罩预约管理系统——数据库设计(前端+PHP+MySQL)
目录 一.背景 二.口罩预约管理系统介绍 三.数据库设计 四.MySQL创建数据库以及数据表 五.数据库设计总结 一.背景 2020年的疫情影响了我们的生产生活,政府不断加大力度联防联控,遏制疫情的蔓 ...
- Vue iview可收缩多级菜单的实现
递归组件实战 views/layout.vue <template> <div class="layout-wrapper"> <Layout cla ...
- 【Nginx】冰河又一本超硬核Nginx PDF教程免费开源!!
写在前面 在 [冰河技术] 微信公众号中的[Nginx]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了, 但就是 ...
- 配置静态 IP、网卡命名规范
一.网卡命名规范(设备类型 + 设备位置 + 数字) 设备类型: 格式 描述 en 以太网(Ethernet) ib 无限宽带(InfiniBand) sl 串列线路互联网协议(slip:Serial ...
- API测试-接口测试基础(1)
由于自己想学习API方面的测试,但是市面上搜不到相关的图书可以系统学习,网上的内容又零零散散,适合有点API开发基础的人去搜索.为了方面新手学习API测试,现在整理了他人的宝贵经验和自己的学习心得,尽 ...
- 代码检查工具 Sonar 安装&使用
本文主要说明Sonar的安装方式并附上依赖安装包,本文目标只实现本地搭建测试的Sonar环境,以及本地的测试项目的非定制化扫描 本机测试环境:Win10-X64,.vs2017 依赖包: 1 ...
- JDK动态代理学习心得
JDK动态代理是代理模式的一种实现方式,其只能代理接口.应用甚为广泛,比如我们的Spring的AOP底层就有涉及到JDK动态代理(此处后面可能会分享) 1.首先来说一下原生的JDK动态代理如何实现: ...
- java 并发线程池的理解和使用
一.为什么要用线程池 合理利用线程池能够带来三个好处. 第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗. 第二:提高响应速度.当任务到达时,任务可以不需要的等到线程创建就能立 ...
- Python推导式(列表推导式、元组推导式、字典推导式和集合推导式)
列表表达式 a_range = range(10) # 对a_range执行for表达式 a_list = [x * x for x in a_range] # a_list集合包含10个元素 pri ...