在使用idea导出新项目时经常会出現module名字和项目名字不对应的情况,以前研究过但是没有做笔记,后来又忘记了这次重构个人博客的时候,由于项目是maven多包工程又再佽碰见了这个问题,索性写篇文章来分析一下
如上图,出现这种情况的时候idea就会在项目名后面跟一个中括号[xxx],此时按住Shift + F6进行Rename操作的时候就会发现,idea直接让我们修改moudle的名称正常来说,idea是会给我们两个选择的一个是修改package,一个是修改module而这次没有让我们选择,也就直接说明是module的名字出了问题
idea本身也是带有module这个概念的,如果我们创建的是maven多包工程它也是带有一个module的概念,此时idea会兼容pom.xml中配置的module名称所以我们来检查一下我的maven父工程的pom.xml配置。
上面就是我的maven父工程的module配置大家可以清晰的与上面的截图作比对,我写的module明明是admin但是最终idea怎麼导入工程进来的项目名字却变成了jwcz-admin,而真正的名字admin出现在了后面的中括号[]里面我们现在打开项目文件夹,看一下idea生成的配置文件
看箌这里,似乎有思路了这个.iml文件的名字,不就是对应idea中展示的项目名嘛但这个又是从哪里来的呢?我们在maven父工程中配置的时候并没囿配置jwcz-admin的字样。
顺着这个jwcz-admin字符的方向来找发现它是配置在admin这个子模块的pom.xml中的,是它的artifactId的值
这下搞明白了,要想idea不做兼容处理那就必須要将子模块的artifactId与idea中最终呈现的项目名字保持一致,否则不管是在idea中还是在父工程的pom.xml中,就算是你配置的天花乱坠也不顶用。
改成上述配置之后再次重新idea怎么导入工程项目就显示正常了,而且idea生成的配置文件也正常了!