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

标签 maven maven-2 multi-module

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

  • 项目服务-> POJO服务层
  • project-web -> Web 应用程序,依赖于“project-services”,部署为 WAR
  • project-web-services -> Web Services ,依赖于“project-services”,作为单独的 WAR 部署,当前未通过互联网公开
  • project-standalone -> Cron Jobs,依赖于 'project-services'

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

    在我以前的项目中,我只是创建了 4 个不同的 Maven 项目,并且从未觉得需要其他任何东西。

    想验证是否有比我以前做的更好的方法。

    最佳答案

    你实际上可以做任何一种方法。如果它真的是一个大项目,你总是希望同时构建和发布,那么多模块项目是一个很好的选择。你可能会这样设置它:

    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)
    

    因此,您只需构建和发布根项目,它会为您处理所有子模块。它们每个都可以相互依赖(请注意循环依赖)。你几乎可以开始了。

    另一种选择是完全分开的 Artifact 。好处是发布周期不同。当您有一个不经常更改的 jar 库,但您经常更新 war 时,这是一个不错的选择。

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

    关于maven - 关于创建 Maven 项目结构的建议 - 多个模块与多个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224621/

    相关文章:

    maven - 发布到 gitlab artifactory 时 401 未经 maven 授权

    java - DTD 显示在 Eclipse 中的项目目标路径中,但通过 Maven 命令行使用时不显示

    java - Maven : "Caused by: java.lang.NoClassDefFoundError: com/omnesys/omne/om/OMN"

    java - 如果我将测试放在单独的模块中,如何在多模块 Maven 设置中运行单元测试?

    maven - 找不到符号构造函数 Service(URL,QName,WebServiceFeature[])

    java - 自定义 Maven 原型(prototype)不会生成 archtype.xml 中定义的源

    java - 如何将 war 合而为一?

    maven - 可以将多模块 Maven 原型(prototype)设置为具有可选模块吗?

    maven - 如何发布具有项目间依赖关系的 Maven 多模块项目?

    Maven 自定义归档扩展 - 我如何使用解包依赖项?