事情是这样的,公司同时开发几个类似的项目,有些公共模块比如DataEntity模块,每个项目都有,有些项目就是copy过来修改的,并且都是根据entity来生成表结构的,部署上去后总是会发生这种情况,这个项目生成的表结构跟那个项目的表结构完全一直,更离谱的是一些其他项目都有的表也跑到别的项目区了。一直都没找到问题,今天看pom问件幡然醒悟,原来是所有的项目都是使用的同一个maven仓库,而项目打的jar包也是进maven库的,假如说A\B两个项目的dataEntity都是如下配置的
<groupId>com.photon.common</groupId>
<artifactId>DataEntity</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
那么它们打的包就会相互覆盖,比如说A项目打了这个模块的包,B项目打包的时候没有将DataEntity重新打包,直接打包其它依赖了该模块的包,就会将A项目打的依赖进去,运行的时候导致将A的数据模型建表到B项目的数据库。解决办法,就是将上面的版本号改一下,使每个项目相同模块的版本号都不一致,则不会再窜。