Idea 能正常编译运行,但是提示爆红问题 iml文件
2024-01-26 23:54 youxin 阅读(397) 评论(0) 编辑 收藏 举报清除idea缓存
清了没有用。
我发现的有用的解决办法:
总maven项目
--service-a (里面引入了 lomlok插件)
--service-b
在service-b里面
import lombok.Data;
会提示爆红。
但是mvn package是成功的。
但是用 build module就会失败,提示找不到lombok类, import lombok.Data 一直是红色的。
我发现在service-b缺少 .iml文件
在service-b下面启动终端,执行
mvn idea:module
就会生成 iml文件。然后再重启idea就可以了。能正常build module,而且也不是爆红了。
对.project和.iml的思考(仅供参考)
这两个文件都是项目标识文件,用于告诉编辑器这个目录并不是一个普通的目录,而是一个项目。我们会发现,Eclipse用普通导入项目的方式,在缺少.project文件的情况下会找不到项目,无法正常的导入。但通过Maven的方式导入,则会自动生成.project。所以我们需要了解到,我们的开发工具有Maven插件,Maven其实对各个编辑器也内置了一些处理。可以用mvn idea,mvn eclipse这些命令对项目进行基础信息构建。这些基础信息存储在类似.project、.iml文件中供编辑器去读取。IDEA除了.iml文件,还有.ipr、.iws等。至于每个文件存储了些什么信息,IDEA又是怎么去读取的不打算做深一步研究。
附 2
常用类似 maven idea 的命令:
- 生成
.ipr
文件:mvn idea:project
- 生成
.iws
文件:mvn idea:workspace
- 生成
.iml
文件:mvn idea:module
参考文章:
https://blog.csdn.net/qq_53273102/article/details/122127418
<module version="4" relativePaths="false" type="JAVA_MODULE"> <component name="NewModuleRootManager"> <exclude-output/> <orderEntry type="inheritedJdk"/> <!-- output url="file://$$MODULE_DIR$$/${maven.build.dest}"/ --> <!-- output-test url="file://$$MODULE_DIR$$/${maven.test.dest}"/ --> <content url="file://$MODULE_DIR$"> <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.sourceDirectory}" isTestSource="false"/ --> <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.testSourceDirectory}" isTestSource="true"/ --> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false"/> <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true"/> <excludeFolder url="file://$MODULE_DIR$/target"/> </content> <orderEntry type="sourceFolder" forTests="false"/> <!-- Next include each dependency: <orderEntry type="module" module-name="${dep.artifactId}"/> <orderEntry type="module-library"> <library name="${dep.artifactId}"> <CLASSES> <root url="jar://${lib.path}!/"/> </CLASSES> <JAVADOC/> <SOURCES/> </library> </orderEntry> --> <output url="file://$MODULE_DIR$/target/classes"/> <output-test url="file://$MODULE_DIR$/target/test-classes"/> <orderEntry type="module-library"> <library> <CLASSES> <root url="jar://E:/maven/repository/com/imooc/book-common/1.0-SNAPSHOT/book-common-1.0-SNAPSHOT.jar!/"/> </CLASSES> </library> 。。。。。
项目名.iml 其实就是idea编辑器对于maven型项目的依赖组件加载识别 的一个依赖组件加载识别记录文件