Maven 构建/插件部分继承行为 w.r.t 到插件版本

Posted

技术标签:

【中文标题】Maven 构建/插件部分继承行为 w.r.t 到插件版本【英文标题】:Maven build/plugins section inheritance behavior w.r.t to plugin version 【发布时间】:2020-09-28 23:45:46 【问题描述】:

我试图了解在父 POM 的 build/plugins 部分中声明的插件的继承行为。

具体来说,如果在 POM A 上,我在构建插件部分中声明了一个具有特定版本的插件,然后在以 POM A 作为父级的 POM B 上,我通过再次声明它来覆盖相同的插件(带有一些配置/执行等) 在其自己的构建插件部分中但不指定插件版本

在这种情况下,POM B 会单独继承 POM A 中声明的插件版本还是默认为最新版本?

还要再次注意,我指的是构建/插件而不是 pluginManagement 部分。

谢谢

【问题讨论】:

【参考方案1】:

POM A 和 B 中的插件配置将被合并。

您将继承该版本。

【讨论】:

酷...这就是我希望在 maven 文档中提到的内容,但不清楚,因为它仅在 pluginManagement 的上下文中讨论版本和配置等。 目前这也是我认为的行为......只是想确保这是预期的行为...... 一个相关问题然后将插件放置在构建插件部分与放置在插件管理部分之间的区别在于,在后者的情况下,插件不会被继承,只有版本和配置是child pom 在自己的构建插件中明确声明它,对吗? PluginManagement 是仅在插件部分中也声明了插件时才使用的配置。这是在父母还是孩子身上并不重要。 是的,我只是想说,从技术上讲,对于 Maven,这些元素的来源没有区别。 Maven 只是将所有内容合并到有效的 POM 中,然后运行它。

以上是关于Maven 构建/插件部分继承行为 w.r.t 到插件版本的主要内容,如果未能解决你的问题,请参考以下文章

Maven插件管理配置继承奇怪行为

通过组合而不是继承导入 maven 插件配置。可以通过构建扩展来完成吗?

Maven学习-项目对象模型

Maven 发布使用部分

maven生命周期和插件

maven-聚合与继承