在开发admin后台时,因需要,将项目拆解成两个模块,一是持久层,只对数据库进行查询更新等操作,另外一个模块依赖持久层,所有对数据库的操作都必须经过持久层。
一开始的思路是:**将持久层打包成jar包并且发布**,admin项目添加jar包的依赖,但无法很好的协同开发,admin需要什么接口要告诉持久层的开发人员,之后开发完成之后要重新打包发布,然后我再更新引用jar包,沟通成本太大,效率特别低。
后来改成gitmodule的方式进行引用,**将持久层改成项目的一个模块**,而非一个jar包,我可以修改持久层的代码(其实这是不安全的),理论上而言,我不应该能够修改持久层的代码,但这是从零开发,不是修修补补,还是稍微放松一点吧。。。我需要什么接口,直接在持久层写空实现,添加todo,写下这个方法所需的功能或者其他注意点,之后提交代码push即可。
使用gitmodule的方式,两个项目都有各自的版本信息,可以查看各自的git status,非常方便。
所遇到的问题
gitmodule虽好,但也有坑哦。
持久层项目与admin项目都是用gradle构建的,并且都使用的springboot。自己的单元测试都能通过,也能运行,但就是bootRun命令无法执行成功,admin项目找不到子项目(持久层)中的包。这个问题着实卡了很长时间,最好还是老大灵光一闪找到了原因——gitmodule中,子项目不能使用springboot
1 | buildscript { |