IDEA 卡住buid(编译)不动的解决办法

 更新时间:2020年10月21日 09:30:01   作者:CoderBaby  
这篇文章主要介绍了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://www.jb51.net/article/197847.htm

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

  • 扩展idea内存,无效。
  • 重启电脑,无效,似乎也不是网络的问题。
  • 切换本地仓库,无效。
  • 清除缓存和索引,无效。
  • 删除项目,重新引入,无效。
  • 删除项目,重新下载,再导入idea,无效。
  • 新建一个类,加上启动类的注解,在run方法前加一个sysout,无效。
  • 关闭idea,项目导入eclipse,启动。重新打开idea,再看看是否能启动,无效。
  • 卸载,重装.。

卸载重装当前版本2019.3,无效重装2018.3.6,无效。

  • 编辑Configuration,去掉build,改成mvn compile,暂时可以

继续看评论区:

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

结论:

知道问题大致所在了——应该是最近升级gandle从5.1到6.5,导致“相关依赖包下载超级缓慢导致”(去国外下载jar依赖包、github 源代码最近都很慢),联想到最近项目需要去pypi官网下载python 离线包——几KB/s或者10多KB/s的龟速

路径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://www.jb51.net/article/195036.htm

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

到此这篇关于IDEA 卡住buid(编译)不动的解决办法(适用于maven和gradle)及定位思路的文章就介绍到这了,更多相关idea一直卡在build不动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JDK17在Windows安装及环境变量配置超详细的教程

    JDK17在Windows安装及环境变量配置超详细的教程

    这篇文章主要介绍了JDK17在Windows安装及环境变量配置超详细的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11
  • Java泛型定义与用法入门示例

    Java泛型定义与用法入门示例

    这篇文章主要介绍了Java泛型定义与用法,结合实例形式分析了java泛型的功能、定义、应用场景及相关使用注意事项,需要的朋友可以参考下
    2019-08-08
  • SpringBoot集成内存数据库hsqldb的实践

    SpringBoot集成内存数据库hsqldb的实践

    hsqldb只需要添加对应的依赖,然后在配置文件进行配置。不需要安装一个数据库,本文就来介绍一下具体使用,感兴趣的可以了解一下
    2021-09-09
  • 自定义类加载器的父类为何是AppClassLoader说明

    自定义类加载器的父类为何是AppClassLoader说明

    这篇文章主要介绍了自定义类加载器的父类为何是AppClassLoader说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 基于SpringBoot构建电商秒杀项目代码实例

    基于SpringBoot构建电商秒杀项目代码实例

    这篇文章主要介绍了基于SpringBoot构建电商秒杀项目代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • review引发的有关于单例模式的思考

    review引发的有关于单例模式的思考

    一次代码调试中发现一个情况,即我在查看memcached的connection时,发现总是维持在100来个左右,当然这看似没什么问题,因为memcached默认connection有1024个。
    2013-04-04
  • Java文件读写详解

    Java文件读写详解

    在真实的应用场景中,很多时候需要使用 Java 读写文件。比如说,读取配置文件信息、读取用户输入等。本篇文章将会详细介绍 Java 文件读写的相关知识,其中包括:读取文件、写入文件、复制文件和删除文件等操作,需要的朋友可以参考下
    2023-05-05
  • SpringBoot3使用Jasypt加密数据库用户名、密码等敏感信息

    SpringBoot3使用Jasypt加密数据库用户名、密码等敏感信息

    使用Jasypt(Java Simplified Encryption)进行数据加密和解密主要涉及几个步骤,包括引入依赖、配置加密密码、加密敏感信息、将加密信息存储到配置文件中,以下是详细的使用说明,需要的朋友可以参考下
    2024-07-07
  • Java学习-打印1-1000以内的水仙花数代码实例

    Java学习-打印1-1000以内的水仙花数代码实例

    这篇文章主要介绍了Java打印1-1000以内的水仙花数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • maven解决包冲突方法详解

    maven解决包冲突方法详解

    这篇文章主要介绍了maven解决包冲突方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论