Maven 如何显示哪个父pom包含插件?
如果我的pom是其他pom层次结构中的一个子pom,有没有办法准确地显示哪个父pom包含插件的定义 简短的回答很可能是:不 根据Maven在执行某个构建之前构建其模型的方式,如下所示:Maven 如何显示哪个父pom包含插件?,maven,maven-3,pom.xml,Maven,Maven 3,Pom.xml,如果我的pom是其他pom层次结构中的一个子pom,有没有办法准确地显示哪个父pom包含插件的定义 简短的回答很可能是:不 根据Maven在执行某个构建之前构建其模型的方式,如下所示: 在第1阶段,POM的层次结构得到解决 在第2阶段,模型规范化和插件配置得到进一步解决 但是,只有在第2阶段结束时,才会执行有效的模型验证,这是在最终有效的pom.xml文件上完成的,这是合并、重写、分析、注入(属性)等的结果 看看完整的pom,maven帮助插件的目标肯定是正确的工具。它将显示(或写入给定文件
- 在第1阶段,POM的层次结构得到解决
- 在第2阶段,模型规范化和插件配置得到进一步解决
- 但是,只有在第2阶段结束时,才会执行有效的模型验证,这是在最终有效的
文件上完成的,这是合并、重写、分析、注入(属性)等的结果pom.xml
- 层次结构中任何一点的部分都可能影响某个插件
- 层次结构中任何点中的节也会影响它
- 在层次结构中的任何点中声明也会影响它
- ,如果用作占位符,也可以发挥重要作用
考虑一下
插件的元素
:
true
或false
,此插件配置是否应应用于从该配置继承的POM。默认值为true
或合并插件
配置
部分:
默认行为是根据元素名称合并配置元素的内容。如果子POM具有特定元素,则该值将成为有效值。如果子POM没有元素,但父POM有元素,则父POM值将成为有效值。通过向
configuration
元素的子元素添加属性,可以控制子POM如何从父POM继承配置。属性是combine.children
和combine.self
。在子POM中使用这些属性来控制Maven如何将父级的插件配置与子级的显式配置相结合
或者根据插件的执行:
inherited
:与上面的inherited元素一样,将此设置为false
将禁止Maven将此执行传递给其子级。此元素仅对父POM有意义
然后,pluginManagement
会影响整体管理:
插件管理包含插件元素的方式与此基本相同,不同之处在于它不是为这个特定的项目构建配置插件信息,而是配置从这个项目构建继承的项目构建。但是,这仅配置在子元素的plugins元素中实际引用的插件。孩子们完全有权覆盖pluginManagement
定义
因此,pom层次结构中某一点的插件定义可能对最终的有效构建没有意义。非常好的解释。但从实践的角度来看,至少在我的经验中,平均继承链并没有那么深。简单地通过层次结构查找特定插件并不难。当然,你必须手动操作,但不应该是你每天都要做的事情。