从父级构建maven模块而不使用父级引用

时间:2013-05-16 14:16:53

标签: maven tycho

我为几个模块建立了一个反应堆构建,运行良好。我的子模块不引用父pom。

由于我将子模块用于多个产品,因此存在多个父pom,因此无论如何我都不能将子引用放在子模块中。

现在我希望父pom能够更改子模块中的某些设置。如何在不提及父母pom的情况下实现这一目标?

在子模块pom中定义一些可能被父级推翻的默认值会很棒。

2 个答案:

答案 0 :(得分:2)

除非您有父POM引用,否则无法从父POM继承。这是设计的:为了确保可重复性,构建模型应该可以从模块的POM中计算出来。

Maven构建的唯一其他配置源是settings.xml和命令行。因此,作为一种变通方法,您可以使用命令行上设置的不同属性两次构建相同的源。

答案 1 :(得分:1)

  

在子模块pom中定义一些可能被父级推翻的默认值会很棒。

这称为Maven inheritance。但与Java一样,只有1个pom可以是当前模块的父级。可能存在继承层次结构,但这会使项目更加复杂。

在我的一个大项目中,我最终得到了具有基本设置的父pom,以及引用当前版本(SNAPSHOT)的每个模块。 (我使用的模块引用了之前的显式版本,令人困惑。)这使生活更轻松,更快速发展。

当然,每个模块都可以覆盖一些设置。