遇到这些问题的背景,是我在学习 MyBatis 的时候,要用到多个 module。但因为解决问题的时候忘记截图了,所以以下问题的阐述会有些模糊,我也不知道之后自己能否看懂,总之,就先按照我的记忆和理解记下来,方便以后出现同样的问题时,可以不用耗费很多时间去解决。
问题1:
之前不知道做了什么,其中一个module的main目录下的 java 文件夹突然消失了,但是resources下的文件都还在,test下的文件也正常。于是想在main文件夹下重新新建一个java的目录,谁知道idea提醒说“你的java目录已经存在,不要重复创建”。于是查了baidu和google,才发现问题。解决问题的方法是,在那个module上右键选择Open Module Settings,然后此时是能看到有java文件的,但是外面没有。这也就解释了为什么在外面创建时会有那个警告的提醒。
正常的右边都是这样的:
但是当时出问题时,右边Source Folders下不仅仅有 src/main/java,在它之上还有一个空的目录"_________",于是我把那个目录删除了之后 apply保存,出来就能看到java的目录了。
后来发现,这里产生问题的原因是,我手抖把其他不相关的问题设成了source root folder了。[笑哭]
问题2:
IDEA模块复制时出现Module "XXX".The root already belongs to module "XXX"。
在测试功能时,我们总会创建多个module复用父module的pom配置,但是有时候我们又懒,不想重重复复创建相同的文件/文件夹(java/dao/..., java/pojo/..., java/utils/...等等之前的module已经创建过的文件),所以我们会将别的module的文件复制到新创建的module中,这时候可能会出现一个问题,那就是这个module的文件会属于别的module,我们可以在那个module(比如module3)上看到确实有个括号写着[module2],表示其文件属于module2。我们可以右键选择Open Module Settings,进入后,在module2中将右边含有module3的都删除,就行了。
问题3:
artifactId child tag should be defined
这个是因为在你的子module下的pom.xml文件中没有定义子配置的名字标签。加入之后问题解决:
暂时问题是这么多,之后还有的话继续补充。