我的 POM 将继承父 POM 的所有内容,包括与我的项目无关的内容:mailingLists
、issueManagement
、ciManagement
等。
我知道我可以覆盖它们,或者干脆忽略它们,以便它们出现在我项目的有效 POM 中。但是有没有办法简单地将它们从我的孩子 POM 中排除?
解决方法是为这些标记提供空白内容,或者为这些标记提供一些虚拟内容以跳过父项的链接。但是这个解决方案似乎一点也不优雅...此外,孙子POM会自动在每个空白或虚拟属性的末尾附加${artifactId}
,使事情变得更糟。
没有标准的 Maven 方法来影响最终 pom 中的此顺序(假设基于官方文档没有描述有关最终 pom 输出中元素顺序的任何内容,而只是某些关键部分的定义顺序,例如依赖关系和"哪个比另一个的定义更胜于另一个基于谁先/最后一个配置"的相关效果)。
请注意,关于插件,常见的模式是在公共父 pom 的 pluginManagament
部分中定义插件.xml允许子插件仅包含特定定义的插件,而不是隐式继承所有父插件。
经过一些测试弄乱了dependencyManagement
和profiles
,我认为没有使用 Maven 标准的解决方法。