将 controller/model//service/persistence 放入 Maven 中的不同模块有什么好处?

Any benefit putting controller/model//service/persistence into different module in maven?

我看到 Maven 以这种方式组织了几个 Java 项目:

<modules>
    <module>XX-services-controller</module>
    <module>XX-services-persistence</module>
    <module>XX-services-service</module>
    <module>XX-services-model</module>
    <module>XX-services-common</module>
</modules>

我能理解对 XX-services-common 的需求,但我看不到将 controller/view/service 分成不同模块的任何好处。 Controller/View/Service只是一层,不会独立部署,为什么会有这样的做法?

或者实际上这是我们应该避免的不良做法?

这根本不是一个坏习惯。当您像这样分成不同的模块时,这些模块可以被多个其他模块使用,从而减少代码重复。

例如,XX-services-persistence此模块可用于将日期持久化到数据库。所以当任何其他模块想要将数据持久化到数据库时,可以使用这个模块。如果这个模块没有分离,那么其他模块将不得不实现方法来持久化数据,这将导致代码重复。