IDEA build委託到Maven build -- 解決代碼沒有編譯錯誤運行卻報錯: "程序包xxx不存在"的問題

首先吐槽一下Intellij IDEA的一個坑 —— IDEA中的maven項目下,可能出現這種情況:代碼編輯器中無編譯錯誤,通過maven 的clean 、compile、package進行各種操作也都沒問題,但是單擊綠色箭頭運行(默認會先執行IDE本身的Build操作)卻報:程序包xxx不存在。問題截圖如下:

 

 

這個問題讓人很頭疼。經過摸索才發現,原來IDEA的Build(編譯)操作和Maven的Build是分開的,並不是一回事。在出現這種問題的情況下,我甚至懷疑編輯器中的實時語法編譯與Build時的classpath並不一致,否則不會出現這種詭異的情況。出現這個問題的原因無法證實,是不是IDEA本身的bug,如果是,那就怪我用的是最新2020.1版的IDEA。無論如何,問題總要解決,本帥掐指一算,已然洞悉一切。

解決的思路是,把IDE的Build/Run操作委託給Maven來進行,讓兩者統一,也就意味着IDE和Maven始終使用相同的classpath進行編譯等。具體做法是,在File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Runner對話框下,勾選“Delegate IDE build/run actions to Maven”。這樣,當你點擊綠色箭頭運行的時候,順帶執行的Build就是Maven的Build,那麼只要maven能成功,操作就沒問題。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章