两者关系
pom都知道, 是maven用来做项目管理的文件. iml是idea内部做项目管理的文件. idea内部只认iml文件.
iml文件实际上是idea用来屏蔽不同的项目管理的方式(pom yml等). idea在pom或者yml等第三方项目管理文件修改的时候, 将其翻译为iml文件. 然后idea内部只处理iml即可.
问题
pom文件中明明已经引入了依赖项. 但是idea仍然编译不通过, 报某些类不存在的错. 这时候到iml文件下面去看, 果然空空如也, 啥依赖也没有.
所以问题定位在iml文件的问题.
解决方案
那难道我需要手动改iml文件吗? 用脚指头想也不可能. 因为iml本来就是用来做自动项目管理的.
但是我的idea为什么在pom改动后, 甚至手动reimport的时候. 没有修改iml呢? 有一个idea的settings:
勾选上这个即可.