maven多模块应该按照什么原则来划分比较好?

现在构建项目遇到一个不解的地方,因为一个大项目里面有很多子项目,有app后台,web后台,对外开放接口,小程序后台,工具类,单点登录后台等等。目前我是项目功能来划分module,每个子项目一个module,单独打包单独运行。但是看了很多文章都是按照model,dao,service,controller等来划分module,故而有点疑惑到底module应该怎么来划分。有没有大佬解决下小弟的困惑^v^

为了提高可扩展性,应该是需要按照maven进行多模块的划分的,各个模块做自己的事情,这个很符合resful规范。因此建议每个子项目单独进行划分模块,
比如app后台如果与其他的模块耦合度低的话,那就应该单独抽离出来作为一个独立的模块,然后再独立的模块中分别建立controller、service、dao层

比如:
--app后台
--dao
--model
--service
--controller
--小程序
--dao
--model
--service
--controller
如果这个模块依赖于另一个模块,请在pom文件中进行配置即可