2

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

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

现在我希望父 pom 能够更改子模块中的一些设置。如果不参考父 pom,如何实现这一点?

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

4

2 回答 2

2

除非您有父 POM 引用,否则您不能从父 POM 继承。这是设计使然:为确保可重复性,构建模型应可从模块的 POM 计算。

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

于 2013-05-22T11:58:30.983 回答
1

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

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

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

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

于 2013-05-18T07:37:39.663 回答