IDEA 卡住buid(編譯)不動的解決辦法

【號外號外!】
最終解決辦法并不復雜,關鍵在于“遇見問題,怎么樣層層分析,多條路徑試錯,最終解決問題的思路或者能力”——資深碼農(nóng)的核心競爭力之一
背景
今天結束完最近2個月的一個項目,開心鴨,IDEA切換代碼到其它歷史項目繼續(xù)推進。咦,什么情況,原來編譯好好的,這次怎么半天編譯不動,超過5分鐘——原本只要10多秒或者20多秒的,什么情況

多路徑嘗試,層層遞進,終至解決
路徑A
原因分析——是不是其他軟件開的多,電腦CPU和內(nèi)存空閑比較少,所以build 比較慢,歷史上偶爾遇見過
嘗試辦法——關閉耗費資源的軟件,耐心等待
具體操作:
關閉office、vscode、vmware、Chrome瀏覽器只保留5個Tab頁
開開心心的看公司的架構文檔10分鐘,回過頭來看看,咦,什么情況,還在編譯
結論:
Failed ——趕緊切換其他路徑
路徑B
原因分析——可能最近哪里配置有更新,或者哪里出錯了
嘗試辦法——重啟(印象中,很多奇怪問題,通過重啟軟件或者電腦都能解決)
具體操作:
重啟IDEA,等待5分鐘,我去,海思編譯不動
結論:
范特西——繼續(xù)切換其他路徑
路徑C——關鍵
原因分析——看來自個兒不行,求助百度或者谷歌了
嘗試辦法——百度搜索
具體操作:
提取搜索關鍵詞——“IDEA 半天編譯不動”,百度之(關鍵字提取十分重要,直接影響搜索結果質(zhì)量)
搜索到一篇相關博客 :http://www.dhdzp.com/article/197847.htm
文中提到了暫時解決辦法,及如下一些嘗試辦法(部分嘗試過,其它耗時耗力,不予采納):
- 擴展idea內(nèi)存,無效。
- 重啟電腦,無效,似乎也不是網(wǎng)絡的問題。
- 切換本地倉庫,無效。
- 清除緩存和索引,無效。
- 刪除項目,重新引入,無效。
- 刪除項目,重新下載,再導入idea,無效。
- 新建一個類,加上啟動類的注解,在run方法前加一個sysout,無效。
- 關閉idea,項目導入eclipse,啟動。重新打開idea,再看看是否能啟動,無效。
- 卸載,重裝.。
卸載重裝當前版本2019.3,無效重裝2018.3.6,無效。
- 編輯Configuration,去掉build,改成mvn compile,暫時可以
繼續(xù)看評論區(qū):

網(wǎng)絡禁用,這個不錯,果斷拔掉網(wǎng)線。編譯順暢了一點,不過報錯,如下(關鍵信息:下載依賴包出錯):

結論:
知道問題大致所在了——應該是最近升級gandle從5.1到6.5,導致“相關依賴包下載超級緩慢導致”(去國外下載jar依賴包、github 源代碼最近都很慢),聯(lián)想到最近項目需要去pypi官網(wǎng)下載python 離線包——幾KB/s或者10多KB/s的龜速
路徑D——最終方案
原因分析——“相關依賴包下載超級緩慢導致”
嘗試辦法——配置阿里云國內(nèi)鏡像或者公司服務器鏡像
具體操作:
%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 }
}
}
結論:
10多秒編譯成功,好開心鴨,如下圖:

注:
(1)全局配置阿里云鏡像:http://www.dhdzp.com/article/195036.htm
(2)阿里云鏡像倉庫官網(wǎng)及說明——需要及時同步官網(wǎng)更新變動:https://maven.aliyun.com/mvn/guide
到此這篇關于IDEA 卡住buid(編譯)不動的解決辦法(適用于maven和gradle)及定位思路的文章就介紹到這了,更多相關idea一直卡在build不動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
深入理解springboot中配置文件application.properties
本文主要介紹了springboot中配置文件application.properties,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
帶你了解Java數(shù)據(jù)結構和算法之數(shù)組
這篇文章主要為大家介紹了Java數(shù)據(jù)結構和算法之數(shù)組,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01
SpringCloud集成MybatisPlus實現(xiàn)MySQL多數(shù)據(jù)源配置方法
本文詳細介紹了SpringCloud集成MybatisPlus實現(xiàn)MySQL多數(shù)據(jù)源配置的方法,包括在application.properties中配置多數(shù)據(jù)源,配置MybatisPlus,創(chuàng)建Mapper接口和使用多數(shù)據(jù)源等步驟,此外,還解釋了每一個配置項目的含義,以便讀者更好地理解和應用2024-10-10

