两者关系
pom都知道, 是maven用来做项目管理的文件. iml是idea内部做项目管理的文件. idea内部只认iml文件.
iml文件实际上是idea用来屏蔽不同的项目管理的方式(pom yml等). idea在pom或者yml等第三方项目管理文件修改的时候, 将其翻译为iml文件. 然后idea内部只处理iml即可.
问题
pom文件中明明已经引入了依赖项. 但是idea仍然编译不通过, 报某些类不存在的错. 这时候到iml文件下面去看, 果然空空如也, 啥依赖也没有.
所以问题定位在iml文件的问题.
解决方案
idea为什么在pom改动后, 甚至手动reimport的时候. 没有修改iml呢? 有一个idea的settings:
勾选上这个即可.
作者:西北工大的东东东东泽
链接:https://juejin.cn/post/6877831907502096397
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
新版本的idea已经取消了上面的这个选项,默认自动更新,如果仍然不自动更新,可以按如下方法实现.iml文件更新:
https://blog.youkuaiyun.com/weixin_52173254/article/details/127201304?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-1-127201304-blog-129710637.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-1-127201304-blog-129710637.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=1
终极方法:
如果还是搞不定,建议:
- 删除所有.iml文件
- 删除.idea文件夹
- idea重新打开该maven项目
如果是更改了自己的包名,很多iml配置和pom就有诧异了,强烈建议用上述终极方法重新打开工程。