使用 Maven 的具有多个子项目的 Spring MVC 项目的包结构

Posted

技术标签:

【中文标题】使用 Maven 的具有多个子项目的 Spring MVC 项目的包结构【英文标题】:Package structure for Spring MVC project with multiple sub projects using Maven 【发布时间】:2012-11-03 12:34:54 【问题描述】:

我们想使用 maven 创建一个 Spring MVC 项目。我们只想使用一个项目,并且在它之下有多个子项目

例如,对于项目来说,一个好的目录/包结构是什么

com
    company
        subproject_1
            controller
            doa
            service
            entity
        subproject_2
            controller
            dao
            service
            entity
        

或一个项目中子项目的所有文件

com
    company
            controller
                all controllers of all sub projects 
            doa
                all dao of all sub projects
            service
            entity      

根据经验,如果项目增加并且子项目不断增加,则可以维护哪种项目结构

或任何其他包结构的建议?

还有什么是用于目录的命名标准 它是实体还是域?做还是坚持?

【问题讨论】:

感谢 Tereško 编辑我的问题并使其正确 【参考方案1】:

为什么不按照多模块项目结构对子项目进行分组?这是一种被广泛采用、认可且易于管理的良好编码实践。看看this example。

就命名约定而言,这是个人喜好,但最好在包结构中清晰地维护不同的层,正如您所说的自下而上的方法:dao 级别,domainservice 层,controllers,最后是 view

【讨论】:

【参考方案2】:

尝试使用添加到工作集选项。

【讨论】:

【参考方案3】:
    创建 Maven 多模块项目。

    在每个项目中都有两个选项:

    按功能打包 逐层打包

    此处讨论的这些选项:http://www.javapractices.com/topic/TopicAction.do?Id=205

我个人的做法是在每个 maven 模块项目中按功能创建包和一些“功能”包使用的“实用”包。

【讨论】:

以上是关于使用 Maven 的具有多个子项目的 Spring MVC 项目的包结构的主要内容,如果未能解决你的问题,请参考以下文章

如何在具有多个子项目的 SBT 项目中覆盖子项目中的设置

如何在具有多个子项目的 Visual Studio 中为 C# 解决方案设置通用值(抽象)?

maven项目转成web项目变成多个子项目

Idea使用Spring initializr搭建Maven的父工程和子项目

多个项目的 Maven 依赖项与依赖项管理

maven管理的项目,其中一个子项目引用其他子项目的时候,在buildpath中其他的项目不是以jar的形式存在的