我有一个带有许多子模块的Master/Child-pom项目。对于一些子模块,我有一系列只有它们需要承担的任务,基本上是读取属性文件来配置jboss部署位置。
目前,我已经将构建部分复制到一些POM中,现在这开始敲响警钟。我真的应该写一次并多次使用它。
这使我走上了一条哲学之路。
a) 我相信我可以在主POM中创建一个概要文件,并且在运行子POM时启用该概要文件,从而使用父POM中定义的功能。这将保留当前结构中的1个父级:多个子级。这也提出了一个问题,我真的可以在子POM中激活该配置文件吗?这样,在子对象上进行构建的人就不必使用-P命令行选项了?
b) 我可以将现有的父/主POM更改为祖父母,并将主POM继承为新的父POM,将属性reading/jboss部署设施添加到这个新的父。需要此功能的子POM将从新的Parent继承,给我祖父-父亲-儿子的继承权。这意味着,进行构建的人不需要以另一个级别的忠诚为代价记住命令行。
问题是,哪种方法是"maven方式"?
遗憾的是,Maven不支持选项a)。我有一个类似的情况需要解决,并尝试在父位中定义子启用配置文件,但发现它不起作用;StackOverflow中其他位置的详细信息。
我不知道是否有官方的最佳实践,因为我以前狩猎时没有找到。我使用了祖父母/父母/子女POM和<pluginManagement>
配置的组合。
我会先在你父母的POM中试用<pluginManagement>
。如果这不能完全满足需求,那么额外的POM水平可能会起作用。祝你好运