关于创建Maven项目结构的建议 - 多个模块与多个项目?

Sam*_*ava 6 maven-2 maven multi-module

请考虑以下企业应用程序分层示例:

  1. project-services - > POJO服务层
  2. project-web - > Web应用程序,依赖于"项目服务",部署为WAR
  3. project-web-services - > Web Services,取决于"项目服务",部署为单独的WAR,目前尚未通过Internet公开
  4. project-standalone - > Cron Jobs,取决于'项目服务'

在Maven中组织这个的正确方法是什么.我应该创建一个多模块maven项目吗?如果'project-services'是Maven模块,它是否可以与其他三个项目共享,每个项目都是一个独立的可部署单元?

在我以前的项目中,我只创建了4个不同的Maven项目,从来没有感到需要任何其他东西.

想验证是否有比以前更好的方式.

Mic*_*ael 2

实际上,您可以采用任何一种方法。如果这确实是一个大项目,并且您总是希望同时构建和发布,那么多模块项目是一个不错的选择。你可能会这样设置:

pom project (top level project that would define all of the modules)
  jar project (project-services)
  war project (project-web)
  war project (project-web-services)
  project-standalone (wasn't sure if this was a jar, or just some scripts, etc)
Run Code Online (Sandbox Code Playgroud)

因此,您只需构建和发布根项目,它就会为您处理所有子模块。它们每个都可以相互依赖(只是要小心循环依赖)。你几乎已经准备好出发了。

另一种选择是完全单独的工件。这样做的好处是有不同的发布周期。当您有一个不经常更改的 jar 库,但您经常更新 war 时,这是一个不错的选择。

显然,您可以混合使用,因此 jar 可能是独立的,但您有一个包含两个 war 文件的多模块项目。Maven 的好处是它足够灵活,可以处理您拥有的任何业务案例以及如何划分这些业务案例。