問題描述
IDEA 2020.1.1 maven項目build的時候報錯,找不到程序包,找不到符號。
IDEA 2020.1.1 maven project: cannot find package, cannot find symbol.
思考
項目是maven,使用mvn clean package可以完成編譯。說明問題不在操作系統環境,也不在maven,也不是網絡。
那么問題必然是IDEA的問題。
搜索IDEA 2020.1.1 很容易就找到了相關文章。
觸發條件
一般我習慣在maven的settings.xml設置 localRepository。這樣IDEA就不會使用默認路徑,下載jar到 %USER_PROFILE%\.m2\repository
了。
這樣用了很多年,都沒問題。這次沒想到是因為 localRepository。
問題解決
經過驗證,和是否使用自帶的Maven無關。
和settings,build, Execution, Deployment下的maven的User Settings File有關。
如果指定的settings.xml文件內有localRepository,則觸發這個問題。
那么從配置文件中刪除localRepository項,通過指定設置頁面的LocalRepository,勾選Override默認配置,即可指向我們原本使用的路徑,例如我的是 D:\.m2\Repository
另外,還有一種比較徹底的解決辦法
直接添加系統環境變量:
位置 | 系統環境變量/IDEA設置的位置 | 值 |
---|---|---|
1.系統環境變量 | JVM_CONFIG_MAVEN_PROPS | -Dmaven.repo.local=D:\.m2\repository |
2.IDEA的設置 | Settings/Build, Execution, Deployment/Build Tools/Maven/Runner 右側VmOptions | -Dmaven.repo.local=D:\.m2\repository |
推薦使用方法1,如果設置了2的話,可以不用在IDEA內配置User Settings File和Override
注意:喜歡使用Terminal的,以及在cmd,git Bash等任何終端內運行mvn 命令的人,都可以因這個變量受益
最無敵的解決方案
因為使用了Jetbrains Toolkit, 使用多個版本的IDEA, 結果導致新的IDEA 又要配置maven,煩.
於是想到一個更無敵的辦法,創建軟連接:
直接 Windows + X + A,
cd %USERPROFILE%/.m2
mklink /D repository D:\.m2\repository
這樣永遠不會下載到C:盤了