前言:因为不熟悉iml文件的作用,加上git上是没有提交该文件的,然后看着iml文件一直爆红就很讨厌,就手欠将其删除了,然后项目就各种报,类引用不到,包找不到,项目里的类中引用的类也都爆红,记录下问题的经过。
iml文件是什么?
iml(infomation of module)文件是IDEA自动创建的java模块化文件,用于java应用开发,存储模块开发的信息,比如一个java组件、maven组件都会生成iml文件,该模块会存储一些模块信息和依赖信息。
问题描述
因删除iml文件,启动项目,报各种类、符号找不到,类中引用的其他类很多爆红。
尝试解决方案一:重新编译所有服务
重新编译所有服务,然后编译通过,项目中的引用依然爆红,且项目启动依然是找不到jar、类等文件,该方案失败,但是值得关注的是,运行maven将项目重新编译时,每个项目都生成了iml文件,但是依然不能解决问题。
尝试解决方案二:重新下载git代码
这一次将自己带码整理后,提交到git,然后将本地带码全部删除,从git上从新拉取,然后问题解决。其实还有另外一种解决方案,就是在每个项目的目录下去手动生成一个iml文件,然后也可以解决问题,在项目的根目录下使用命令: mvn idea:module 也可以解决,但是对于几十个服务的项目来说就不太合适了,没有直接拉取带码划算。
问题总结
使用idea加载项目就会有iml文件产生,如果将其删除了使用maven编译也会产生该文件,但是产生的同名的iml文件,再启动项目时却会报错,并不能正常运行。这个问题的起因是因为看iml文件不爽导致,很狗血,之后也查到了怎么将iml文件对git隐藏,使该文件不爆红。
对git隐藏iml文件,使其不爆红
打开setting–>File Types,如下图:
然后选中图中的.gitingore(GitIngore),再点击到下图中的位置,添加*.iml就可以了,IDEA就不会一直提示你这是一个对于git没有执行add操作的文件了。