問題描述
通過idea新建maven項目,參數設置好后,idea自動構建maven項目時,速度很慢。
參數設置如圖:
執行時間如下圖:
Total time為8:49,花了將近十分鍾時間。
連續嘗試了幾次,都是如此,感覺編輯器卡住了一樣。
問題原因
[DEBUG] Searching for remote catalog: http://repo1.maven.org/maven2/archetype-catalog.xml
這一條語句執行了很久。
編輯器在執行mvn archetype:generate命令時,需要指定一個archetype-catalog.xml文件,該命令的參數為-DarchetypeCatalog,用來指定archetype-catalog.xml文件從哪里獲取,可選值為:remote,internal,local,默認為remote,即從http://repo1.maven.org/maven2/archetype-catalog.xml
路徑下載archetype-catalog.xml文件,查看該文件可知,如下圖:
該文件大小將近6M,在網速不理想情況下,由此方式下載勢必會造成卡頓的情況。
速度測試
於是使用上述archetypeCatalog參數的三個數值remote,internal,local分別進行測試,得出如下結果:
- 參數值為remote時,Total time為8:49,如圖:
- 參數值為internal時,Total time為1:19,如圖:
- 參數值為local時,Total time為4:01,如圖:
當然,測試取樣數值較少,且為網速較低時測試,得到的結果也只是一個大概情況,即internal優於local優於remote,可能網速較快時,誤差可以忽略。
因此,修改配置時的archetypeCatalog參數值即可。
archetypeCatalog設置
1、remote為默認值,不需設置。
2、修改archetypeCatalog為internal,有以下兩種方法:
- 在新建maven項目時添加archetypeCatalog參數,並將值設置為internal
- 直接修改maven配置參數,在使用mvn archetype:generate命令時,加上-DarchetypeCatalog=internal
3、修改archetypeCatalog為local前,需要先將archetype-catalog.xml下載至本地,並將此文件放至maven倉庫目錄下,設置archetypeCatalog為local時,同樣有以下兩種方法:
- 在新建maven項目時添加archetypeCatalog參數,並將值設置為local
- 直接修改maven配置參數,在使用mvn archetype:generate命令時,加上-DarchetypeCatalog=local
幾種解決方法都已羅列出來,至於選哪種,就看你喜好啦,編程過程中無卡頓,美滋滋。