我为几个模块建立了一个反应堆构建,运行良好。我的子模块不引用父pom。
由于我将子模块用于多个产品,因此存在多个父pom,因此无论如何我都不能将子引用放在子模块中。
现在我希望父pom能够更改子模块中的某些设置。如何在不提及父母pom的情况下实现这一目标?
在子模块pom中定义一些可能被父级推翻的默认值会很棒。
答案 0 :(得分:2)
除非您有父POM引用,否则无法从父POM继承。这是设计的:为了确保可重复性,构建模型应该可以从模块的POM中计算出来。
Maven构建的唯一其他配置源是settings.xml
和命令行。因此,作为一种变通方法,您可以使用命令行上设置的不同属性两次构建相同的源。
答案 1 :(得分:1)
在子模块pom中定义一些可能被父级推翻的默认值会很棒。
这称为Maven inheritance。但与Java一样,只有1个pom可以是当前模块的父级。可能存在继承层次结构,但这会使项目更加复杂。
在我的一个大项目中,我最终得到了具有基本设置的父pom,以及引用当前版本(SNAPSHOT)的每个模块。 (我使用的模块引用了之前的显式版本,令人困惑。)这使生活更轻松,更快速发展。
当然,每个模块都可以覆盖一些设置。