0

我有一个包含许多子模块的主/子 pom 项目。对于一些子模块,我有一系列只有他们需要承担的任务,基本上是读取一个属性文件来配置一个 jboss 部署位置。

目前,我已将构建部分复制到几个 POM 中,现在开始敲响警钟。我真的应该写一次并多次使用它。

这让我走上了哲学的道路。

a) 我相信我可以在主 POM 中创建一个配置文件,并在运行子 POM 时启用此配置文件,从而使用父 POM 中定义的功能。这使当前结构代替了 1 个父级:许多子级。它还提出了一个问题,我是否真的可以在子 POM 中激活该配置文件,以便在子 POM 上进行构建的人不必使用 -P 命令行选项?

b) 我可以将现有的父/主 POM 更改为祖父,并将主 POM 继承到新的父 pom 中,将属性读取/jboss 部署设施添加到这个新父级。然后,需要此功能的子 POM 将从新的 Parent 继承,给我一个祖父-父-子继承。这意味着进行构建的人不需要以另一个级别的继承为代价记住命令行。

问题是,哪种方法是“行家之道”?

4

1 回答 1

1

不幸的是,Maven 不支持选项 a)。我有类似的情况要解决并尝试了 child-enables-profile-defined-in-parent 位,但发现它不起作用;StackOverflow 其他地方的详细信息

我不知道是否有官方的最佳做法,因为我之前打猎时没有找到。我使用了祖父母/父母/孩子 POM 和<pluginManagement> 配置的组合。

我会<pluginManagement>先在你的父母 POM 中尝试。如果这不能完全满足需要,额外的 POM 级别可能会起作用。祝你好运!

于 2012-09-20T15:57:56.910 回答