一、idea生成文件的结构
.idea和.iml文件由idea生成
.idea文件夹
- .Idea存放项目的配置信息,包括描述、编码、历史记录,版本控制信息等。
- .idea文件夹是可以删除的,它是根据用户本地的IntelliJ IDEA配置的生成,不同用户可能配置项不一样,所以一般在做版本控制的时候是把它排除在外,这样可以有效避免版本冲突。
- compiler.xml文件:这个配置主要保存编译相关的信息,其中有项目包含的模块名称、源码编译后.class文件输出的目录、测试文件编译后输出路径,编译的时候使用jdk版本。
- workspace.xml文件:这个配置文件主要保存的是工作空间相关配置,例如Maven的配置的根目录,Maven的配置文件路径信息,还有其他默认的配置信息。
- jarRepositories.xml配置jar相关的信息:该文件会将maven里面定义的jar包数据源都复制过来,它会包含存库的id,名称和url。
- encodings.xml编码配置信息:该文件可以指定某个目录下文件使用的默认编码。
- misc.xml:各种杂项
- modules.xml:模块
.iml文件
- IDEA中的
.iml
文件是项目标识文件,缺少了这个文件,IDEA就无法识别项目。跟Eclipse的.project
文件性质是一样的。并且这些文件不同的设备上的内容也会有差异,所以我们在管理项目的时候,.project和.iml文件都需要忽略掉
。 - iml文件是IntelliJ IDEA自己创建的模块文件,用于java应用开发,存储一些模块相关的信息,比如一个Java组建,插件组建,Maven组建等。存储一些模块路径信息,依赖信息以及别的一些设置。
二、第一种复制粘贴,相当于模块改名
重命名.iml文件名
- 更改.idea文件夹下compiler.xml中的标签
- 更改.idea文件夹下modules.xml的模块标签(大概率没有这个xml)
- 更改pom.xml文件中artifactId标签
- 最后改项目或模块文件夹的名称
如果不更改.idea文件夹下的文件,退出项目,直接修改pom.xml和项目文件夹名,再次打开项目,会有可能compiler.xml中的模块标签已经更改,这个看脸,概率会变,建议还是手动改一下compiler.xml,别问,问就是实验过了
或者,直接删除.idea文件,刷新一下或重新打开就会再次生成新的.idea文件
三、第二种暴力复制粘贴
- 删除.imp文件
- 删除.idea文件
- 重命名项目或模块文件夹
- 更改pom.xml
因为.imp和.idea文件是idea帮我们生成的(给它自己用的),所以都删了,适合学生党学习使用
如果是复制粘贴模块,改完文件直接导入项目就可以
四、可能出现的问题(idea模块关联与maven模块关联的不同)
(1)如果出现方括号名,说明文件夹和模块名不一致,看pom.xml和.xml的模块名要与文件夹一致,关闭项目,改文件夹名,重新打开
(2)原本在idea项目下的模块在之前是一起打开的,删除了.imp文件,模块只能被单独当作一个项目,因为在建项目时,新建模块会主模块(2023idea会在建项目时候创建一个与项目同名的模块)在.idea中的.compiler.xml记录项目模块名
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="itheima_mybatis_quick" />
<module name="itheima_spring_tx_anno" />
<module name="itheima_spring_mvc" />
<module name="itheima_mybatis_config" />
<module name="itheima_spring_tx" />
<module name="itheima_mybatis_dao" />
<module name="itheima_mybatis_mapper" />
<module name="SSM" />
<module name="itheima_mybatis_multi" />
<module name="itheima_mybatis_anno" />
</profile>
</annotationProcessing>
</component>
</project>
通常建立父子模块关系,用maven建立的,打开文件也是用maven加入模块的pom.xml,所以想在项目里打开多模块,需要在pom.xml设置父子模块,这样在使用idea添加新模块时,不会依赖.idea建立联系,关于maven分模块开发,请阅读6.Maven分模块开发_maven多模块-CSDN博客