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