4

我正在通过 Maven 构建一个多模块 J2EE Web 应用程序。Web 业务应用程序包含几个子系统/模块。为了获得高模块化、易于分布式团队开发、易于代码导航、易于部署和升级,我们将Web业务应用系统按功能分离,然后逐层分离。这是 Maven 层次结构:

|--business-sub-system-1
|    --domain
|       --pom.xml
|    --dao
|       --pom.xml
|    --service
|       --pom.xml
|    --webapp(presentation)
|       --pom.xml
|--pom.xml
|
|--business-sub-system-2
|    --domain
|       --pom.xml
|    --dao
|       --pom.xml
|    --service
|       --pom.xml
|    --webapp(presentation)
|       --pom.xml
|--pom.xml
|
|--business-sub-system-3
| ...
|--business-sub-system-4
|...
|--business-sub-system-5
|...
|...
|pom.xml

但我们必须共享 webapp,因为整个项目将被视为一个 web 项目(一个 web.xml)。

在此处输入图像描述

我的问题是如何将 webapp 分成不同的模块,但可以作为一个网站运行?(每个业务子系统都有单独的webapp/html/jsp/js/css,但可以在运行时合并为一个网站)

4

1 回答 1

1

考虑到这一点,我对您的最佳建议是:单独部署单独团队构建的内容。如果这些子系统真的需要相互独立,并且可以独立发布,那么一次将它们部署在一起是没有意义的。

如果由于系统要求而无法做到这一点,那么架构方面的最佳解决方案是将前端层组合在一个 WAR 组件中,该组件依赖于不同的业务子系统(域、dao 和服务)。团队需要共享此组件,但可以将他们的工作分散到不同的文件夹或包中。

话虽如此,咨询的生活往往不是那么容易,因为这样的逻辑解决方案是可能的。所以这是我更实际的答案:

在主 POM 文件中,使用程序集插件创建所有项目的中途停留战争。为了降低程序集的复杂性,您可以将域、dao 和服务 POM 包含为简单的依赖项。

于 2013-08-08T18:30:10.480 回答