使用公司范围的超级/父级POM覆盖超级POM

时间:2014-04-09 15:28:21

标签: maven pom.xml

我们希望有一个公司范围的超级POM ,它将从通常的超级POM继承而且我们所有的公司项目将隐式继承。这可能吗?

截至目前,我们必须从公司范围的超级POM 明确继承。这不是很方便且容易出错。

有人可以提出建议吗?

3 个答案:

答案 0 :(得分:1)

我没有最好的做法,我知道。我知道没有命令行选项来指定超级POM,例如。

我能想到的唯一方法似乎比明确指定父级更容易出现风险并且不方便,我会推荐它。您可以查看Maven的源代码,并用您自己的super POM in the Maven model替换,基本上为您的公司制作自定义Maven构建。然后,你必须强迫你的所有开发人员使用自定义的Maven版本,这在你看来就像你想要避免的一样不方便和风险。

我公司有一套公司母公司POM,都来自我们自己的超级POM。我们多年来一直使用这种结构而没有问题。

答案 1 :(得分:1)

Maven提供扩展机制来扩展/覆盖maven的默认行为。通过使用扩展机制,可以覆盖超级pom。

This answer提供详细步骤。

答案 2 :(得分:1)

使用maven-enforcer-plugin确保加载它以及您可能拥有的其他条件。

然后配置您的nexus服务器,使其具有一个规则集,以强制为已部署的任何内容加载父pom。