相关疑难解决方法(0)

Maven父母pom vs模块pom

在多项目构建中似乎有几种方法来构建父pom,我想知道是否有人对每种方式的优点/缺点有任何想法.

拥有父pom的最简单方法是将它放在项目的根目录中,即

myproject/
  myproject-core/
  myproject-api/
  myproject-app/
  pom.xml
Run Code Online (Sandbox Code Playgroud)

其中pom.xml既是父项目又是-core -api和-app模块

下一个方法是将父项分离到它自己的子目录中,如中所示

myproject/
  mypoject-parent/
    pom.xml
  myproject-core/
  myproject-api/
  myproject-app/
Run Code Online (Sandbox Code Playgroud)

父pom仍然包含模块,但它们是相对的,例如../myproject-core

最后,有一个选项,模块定义和父项分开,如

myproject/
  mypoject-parent/
    pom.xml
  myproject-core/
  myproject-api/
  myproject-app/
  pom.xml
Run Code Online (Sandbox Code Playgroud)

父pom包含任何"共享"配置(dependencyManagement,属性等),myproject/pom.xml包含模块列表.

目的是可扩展到大规模构建,因此应该可以扩展到大量项目和工件.

一些奖金问题:

  • 在源代码控制,部署目录,常见插件等中定义各种共享配置的最佳位置在哪里(我假设父母,但我经常被这种情况所困扰,他们最终在每个项目中而不是常见的一个).
  • maven-release插件,hudson和nexus如何处理你如何设置你的多项目(可能是一个巨大的问题,如果有人因为如何设置多项目构建而被抓住了,那就更多了?)

编辑:每个子项目都有自己的pom.xml,我把它留了下来以保持简洁.

java build-process maven-2

279
推荐指数
4
解决办法
15万
查看次数

maven模块继承与聚合

我们有一个庞大而深入的模块结构,具有三个"实际"继承层和三到四层模块聚合.

我对真正的继承很好:一个公司范围的超级pom,一个产品范围的父母和一个客户范围的父母,用于产品的自定义.

但我观察到,"空"聚合模块也被定义为其子模块的父级.

如果整个概念与OO中的相同,那么如果聚合模块(除了它们的子模块之外它们是空的),这对我来说没有任何意义,不会给pom添加特定的配置.

是否有其他原因(可能是可操作的)为什么这可能有用?

旁注:pom的介绍在这方面尚不清楚:术语"父"不清楚:它可以表示超级pom(=继承树中的父级)或聚合pom(=文件系统中的父级...)

maven

17
推荐指数
1
解决办法
8985
查看次数

标签 统计

build-process ×1

java ×1

maven ×1

maven-2 ×1