使用idea两个月了,最近我在复习尚硅谷雷丰阳老师的mybatis视频,由于是用eclipse讲解的,所以我把代码直接粘到idea上了,稍微改了一些,但是发现一个问题:

问题

我知道maven模块之间是相互独立的,但是插件跳转的时候让我很迷。
这个插件估计很多人在用,可以在dao和xml文件相互跳转。
maven模块之间的调用问题
maven模块之间的调用问题

maven模块之间的调用问题

问题1:模块1不导包的情况下难道可以之间调用模块2的代码?为什么1的dao会跳到2的实体类上?

总结:由于这两个模块的很多包名+类名甚至方法名都是一样的,sql映射文件的命名空间都是一样的,所以使用插件跳转时会出问题,这是插件的问题。模块之间一般是独立的,即使包名一样,也不会去调另一个模块的代码。
如果想用另一个模块的代码,直接在pom文件中导入另一个模块的依赖即可。

问题2:如果引入的模块名不同,但是包名+类名相同怎么办?

经过测试,导包时虽然包名一样,用的还是test1自己的bean
maven模块之间的调用问题
如果把test1的bean删掉,用的是test2的bean
maven模块之间的调用问题

总结:

纸上得来终觉浅,绝知此事要躬行。

各模块之间的包名最好不要一致,否则会出各种各样的问题,比如插件不能正确识别,违背了xml命名空间的初心等等,不好排错。我也测试过了,模块名不能有中文,只能是字母数字下划线,横杠-我试过也是可以的,但有中文就一定报错???
当然,我也只是为了方便复习,原来eclipse的几个Poject都放在idea的聚合maven父工程中,没想到就出现这么多问题。
也说明了eclipse的Poject和idea的module只是很类似,它们并不是同一个东西。
maven模块之间的调用问题

maven模块之间的调用问题
模块之间一般为了重复利用,会把公共的接口或者代码写在一个模块,然后引入该依赖就能用了。

相关文章: