IDEA 卡住buid(編譯)不動(dòng)的解決辦法
【號(hào)外號(hào)外!】
最終解決辦法并不復(fù)雜,關(guān)鍵在于“遇見(jiàn)問(wèn)題,怎么樣層層分析,多條路徑試錯(cuò),最終解決問(wèn)題的思路或者能力”——資深碼農(nóng)的核心競(jìng)爭(zhēng)力之一
背景
今天結(jié)束完最近2個(gè)月的一個(gè)項(xiàng)目,開心鴨,IDEA切換代碼到其它歷史項(xiàng)目繼續(xù)推進(jìn)。咦,什么情況,原來(lái)編譯好好的,這次怎么半天編譯不動(dòng),超過(guò)5分鐘——原本只要10多秒或者20多秒的,什么情況
多路徑嘗試,層層遞進(jìn),終至解決
路徑A
原因分析——是不是其他軟件開的多,電腦CPU和內(nèi)存空閑比較少,所以build 比較慢,歷史上偶爾遇見(jiàn)過(guò)
嘗試辦法——關(guān)閉耗費(fèi)資源的軟件,耐心等待
具體操作:
關(guān)閉office、vscode、vmware、Chrome瀏覽器只保留5個(gè)Tab頁(yè)
開開心心的看公司的架構(gòu)文檔10分鐘,回過(guò)頭來(lái)看看,咦,什么情況,還在編譯
結(jié)論:
Failed ——趕緊切換其他路徑
路徑B
原因分析——可能最近哪里配置有更新,或者哪里出錯(cuò)了
嘗試辦法——重啟(印象中,很多奇怪問(wèn)題,通過(guò)重啟軟件或者電腦都能解決)
具體操作:
重啟IDEA,等待5分鐘,我去,海思編譯不動(dòng)
結(jié)論:
范特西——繼續(xù)切換其他路徑
路徑C——關(guān)鍵
原因分析——看來(lái)自個(gè)兒不行,求助百度或者谷歌了
嘗試辦法——百度搜索
具體操作:
提取搜索關(guān)鍵詞——“IDEA 半天編譯不動(dòng)”,百度之(關(guān)鍵字提取十分重要,直接影響搜索結(jié)果質(zhì)量)
搜索到一篇相關(guān)博客 :http://www.dbjr.com.cn/article/197847.htm
文中提到了暫時(shí)解決辦法,及如下一些嘗試辦法(部分嘗試過(guò),其它耗時(shí)耗力,不予采納):
- 擴(kuò)展idea內(nèi)存,無(wú)效。
- 重啟電腦,無(wú)效,似乎也不是網(wǎng)絡(luò)的問(wèn)題。
- 切換本地倉(cāng)庫(kù),無(wú)效。
- 清除緩存和索引,無(wú)效。
- 刪除項(xiàng)目,重新引入,無(wú)效。
- 刪除項(xiàng)目,重新下載,再導(dǎo)入idea,無(wú)效。
- 新建一個(gè)類,加上啟動(dòng)類的注解,在run方法前加一個(gè)sysout,無(wú)效。
- 關(guān)閉idea,項(xiàng)目導(dǎo)入eclipse,啟動(dòng)。重新打開idea,再看看是否能啟動(dòng),無(wú)效。
- 卸載,重裝.。
卸載重裝當(dāng)前版本2019.3,無(wú)效重裝2018.3.6,無(wú)效。
- 編輯Configuration,去掉build,改成mvn compile,暫時(shí)可以
繼續(xù)看評(píng)論區(qū):
網(wǎng)絡(luò)禁用,這個(gè)不錯(cuò),果斷拔掉網(wǎng)線。編譯順暢了一點(diǎn),不過(guò)報(bào)錯(cuò),如下(關(guān)鍵信息:下載依賴包出錯(cuò)):
結(jié)論:
知道問(wèn)題大致所在了——應(yīng)該是最近升級(jí)gandle從5.1到6.5,導(dǎo)致“相關(guān)依賴包下載超級(jí)緩慢導(dǎo)致”(去國(guó)外下載jar依賴包、github 源代碼最近都很慢),聯(lián)想到最近項(xiàng)目需要去pypi官網(wǎng)下載python 離線包——幾KB/s或者10多KB/s的龜速
路徑D——最終方案
原因分析——“相關(guān)依賴包下載超級(jí)緩慢導(dǎo)致”
嘗試辦法——配置阿里云國(guó)內(nèi)鏡像或者公司服務(wù)器鏡像
具體操作:
%GRADLE_USER_HOME%\.gradle目錄下,新增下init.gradle
文件,填入如下內(nèi)容(邏輯:根據(jù)依賴包的起始地址,切換不同的下載路徑):
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 } } }
結(jié)論:
10多秒編譯成功,好開心鴨,如下圖:
注:
(1)全局配置阿里云鏡像:http://www.dbjr.com.cn/article/195036.htm
(2)阿里云鏡像倉(cāng)庫(kù)官網(wǎng)及說(shuō)明——需要及時(shí)同步官網(wǎng)更新變動(dòng):https://maven.aliyun.com/mvn/guide
到此這篇關(guān)于IDEA 卡住buid(編譯)不動(dòng)的解決辦法(適用于maven和gradle)及定位思路的文章就介紹到這了,更多相關(guān)idea一直卡在build不動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JDK17在Windows安裝及環(huán)境變量配置超詳細(xì)的教程
這篇文章主要介紹了JDK17在Windows安裝及環(huán)境變量配置超詳細(xì)的教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)hsqldb的實(shí)踐
hsqldb只需要添加對(duì)應(yīng)的依賴,然后在配置文件進(jìn)行配置。不需要安裝一個(gè)數(shù)據(jù)庫(kù),本文就來(lái)介紹一下具體使用,感興趣的可以了解一下2021-09-09自定義類加載器的父類為何是AppClassLoader說(shuō)明
這篇文章主要介紹了自定義類加載器的父類為何是AppClassLoader說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11基于SpringBoot構(gòu)建電商秒殺項(xiàng)目代碼實(shí)例
這篇文章主要介紹了基于SpringBoot構(gòu)建電商秒殺項(xiàng)目代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05SpringBoot3使用Jasypt加密數(shù)據(jù)庫(kù)用戶名、密碼等敏感信息
使用Jasypt(Java Simplified Encryption)進(jìn)行數(shù)據(jù)加密和解密主要涉及幾個(gè)步驟,包括引入依賴、配置加密密碼、加密敏感信息、將加密信息存儲(chǔ)到配置文件中,以下是詳細(xì)的使用說(shuō)明,需要的朋友可以參考下2024-07-07Java學(xué)習(xí)-打印1-1000以內(nèi)的水仙花數(shù)代碼實(shí)例
這篇文章主要介紹了Java打印1-1000以內(nèi)的水仙花數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04