• 解决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:盘了

  • 相关阅读:
    101. Symmetric Tree(js)
    100. Same Tree(js)
    99. Recover Binary Search Tree(js)
    98. Validate Binary Search Tree(js)
    97. Interleaving String(js)
    96. Unique Binary Search Trees(js)
    95. Unique Binary Search Trees II(js)
    94. Binary Tree Inorder Traversal(js)
    93. Restore IP Addresses(js)
    92. Reverse Linked List II(js)
  • 原文地址:https://www.cnblogs.com/slankka/p/12964971.html
Copyright © 2020-2023  润新知