代码改变世界

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

 iml文件示例:
<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型项目的依赖组件加载识别 的一个依赖组件加载识别记录文件

 
如果提示 xxx找不到。如果重新生成 mvn idea:module 没有解决。试着先运行main文件。看是否能成功运行。如果能。那么接下来install打包会成功。