【问题标题】:Maven: Can I have parent and child modules in same Eclipse project?Maven:我可以在同一个 Eclipse 项目中拥有父模块和子模块吗?
【发布时间】:2019-01-31 06:46:18
【问题描述】:

我需要创建一个 Spring MVC Web 应用程序,其中每个服务都应该创建为一个单独的 JAR 文件。一些文档建议可以为此使用多个 Maven 模块。但我的理解是,每个模块也需要创建为一个单独的 Eclipse 项目。

我能否在同一个 Eclipse 项目中拥有所有控制器、服务和 DAO,同时仍然使用 Maven 为每个服务(以及整个应用程序的 war 文件)创建单独的 jar?

【问题讨论】:

  • 我认为你应该选择microservice architecture
  • 通常一个 jar = 一个 Maven 模块 = 一个 Exlipse 项目。
  • 这是一个常见的设置,例如具有服务、模型、存储库和 Web 模块的父级 这里有一个示例。 baeldung.com/maven-multi-module 这样的项目将是版本控制中的一个仓库,因此所有模块将被分支并合并在一起。只需导入父模块即可将所有模块导入 Eclipse。
  • 如果您不是 Maven 专家,最好从同一个项目中的服务开始,但在不同的命名空间下,例如com.project.foocom.project.bar。以后如果觉得项目太大,就拆分项目。尽量不要过早优化!

标签: spring maven spring-mvc


【解决方案1】:

简答:

是的,您可以使用 maven-jar-plugin(配置文件、执行)从单个项目中创建多个构建目标(jar 文件)。

https://maven.apache.org/plugins/maven-jar-plugin/


你应该这样做吗?

我相信大多数人都会同意我的观点,你不应该这样做,你应该坚持 Maven 最重要的核心概念之一:模块化。

现在,您问过自己一个问题,我真的需要为我的应用程序创建多个模块(jar 文件)吗? 我可以在一个项目中管理所有代码片段吗?

也许您只需要一些关于如何在一个项目中组织 Java 包的指导。

https://dzone.com/articles/layered-architecture-is-good - 使用分层架构

http://www.javapractices.com/topic/TopicAction.do?Id=205 - 按功能与层的包

注意:如果您认为您的项目会快速增长并且类的数量会很大,那么多模块应用程序可能是一个不错的选择。


如果您仍然觉得必须创建多个模块,这里有几篇关于如何在应用程序设计中解决模块化问题的有趣帖子,在这些帖子中,它们提供了非常有趣的理由/标准,为什么您应该将应用程序拆分为模块。

How to decompose a system into modules?

Spring Java Maven Project + Module Design

祝你好运!

【讨论】:

    【解决方案2】:

    单独的模块和单独的 Eclipse 项目有什么问题?如果您在模块之间声明了 Maven 依赖关系,您将能够在相应的 Eclipse 项目中的类之间具有编译依赖关系。

    所以我认为可以将多个 Maven 模块强制到一个 Eclipse 项目中,但我不知道有什么好的理由这样做。

    【讨论】:

    • 不可能将多个 Maven 模块强制到单个 Eclipse 项目中,因为 Eclipse 会识别来自 pom 的信息,这意味着单个 Maven 模块。是的,没有充分的理由这样做。 ..
    猜你喜欢
    • 2013-04-17
    • 2014-03-28
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多