小编noo*_*osy的帖子

Maven继承和聚合示例体系结构

我有一个问题,关于如何使用继承和聚合的组合来重新构建一些单独的Maven项目.

设置场景:

  • 现有3个基于代码的Maven项目均由同一团队开发.
  • 1项目是一个API,让我们调用project-api.
  • 其他2个项目是使用project-api的web应用程序.让我们称他们为web-app1和web-app2.

这三个项目都有一些基本的依赖关系,比如log4j和junit.除此之外,web-app1和web-app2依赖于project-api,并且还在它们之间共享许多其他常见的依赖关系.

我一直在阅读https://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html,我只是想确认我理解最佳实践.

遗产:

我是否有必要创建一个组织级父POM,其中包括所有三个项目和一些环境设置以及总体项目信息共有的依赖关系(依赖关系管理).意图是所有Maven项目(不一定直接)继承自此POM.

我是否有必要创建另一个父POM,其中包含web-app1和web-app2共有的依赖关系(依赖关系管理),并且只有web-app1和web-app2继承自此POM.我认为这个POM(我们称之为web-app父POM)应该是组织级父POM的子POM.

聚合:

在聚合方面,我不想在一天结束时创建一个工件.相反,我想运行一个Maven构建命令(可能在组织POM级别)以此顺序构建三个项目:

  1. 项目的API
  2. 网络APP1
  3. 网络APP2

这是否意味着组织父POM将声明模块:

  1. 项目的API
  2. 网络应用程序父POM

Web应用程序父POM将声明模块:

  1. 网络APP1
  2. 网络APP2

请注意,Web-app父POM和组织父POM没有任何相关代码.我相信这是可以注意到的"事实上,在Maven世界中,一个项目根本不需要包含任何代码,只需要一个pom.xml." 取自http://maven.apache.org/pom.html.

最后,我如何确保我需要的构建顺序得到尊重?例如,构建组织父POM会导致构建project-api,并且这个最新的构建用于构建web-app1和web-app2?

我希望这不会太令人困惑,很高兴澄清是否需要更多信息.如果我完全错了,请随时告诉我!谢谢.

inheritance parent aggregation pom.xml maven

14
推荐指数
1
解决办法
8428
查看次数

标签 统计

aggregation ×1

inheritance ×1

maven ×1

parent ×1

pom.xml ×1