解决IDEA 2020.1.1 找不到程序包和符号

问题描述

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 epository了。

这样用了很多年,都没问题。这次没想到是因为 localRepository。

问题解决

经过验证,和是否使用自带的Maven无关。

和settings,build, Execution, Deployment下的maven的User Settings File有关。

如果指定的settings.xml文件内有localRepository,则触发这个问题。

那么从配置文件中删除localRepository项,通过指定设置页面的LocalRepository,勾选Override默认配置,即可指向我们原本使用的路径,例如我的是 D:.m2Repository

另外,还有一种比较彻底的解决办法

直接添加系统环境变量:

位置 系统环境变量/IDEA设置的位置
1.系统环境变量 JVM_CONFIG_MAVEN_PROPS -Dmaven.repo.local=D:.m2 epository
2.IDEA的设置 Settings/Build, Execution, Deployment/Build Tools/Maven/Runner 右侧VmOptions -Dmaven.repo.local=D:.m2 epository

推荐使用方法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
epository

这样永远不会下载到C:盘了

原文地址:https://www.cnblogs.com/slankka/p/12964971.html