Java 如何跨模块重用pom元素

Java 如何跨模块重用pom元素,java,maven,pom.xml,reusability,Java,Maven,Pom.xml,Reusability,因此,我们有6个子pom模块,其中4个子模块共享用于构建的公共元素,并且几乎没有参数化的差异 因此,我们可以有一个实用的pom移动这些常见的东西和结果。 我不想移动到父模块,因为它不适用于所有子模块 请建议是否有此方法或替代方法。谢谢不可能 不能导入POM的部分。这在某些情况下是可取的(我知道),但我们可能需要等待Maven 5.0.0 我建议: 在父POM中定义所有插件和执行 如有必要,请使用或定义属性来跳过它们 覆盖模块中的属性 这意味着 如果您的插件对应于跳过执行的属性myplugi

因此,我们有6个子pom模块,其中4个子模块共享用于构建的公共元素,并且几乎没有参数化的差异

因此,我们可以有一个实用的pom移动这些常见的东西和结果。 我不想移动到父模块,因为它不适用于所有子模块

请建议是否有此方法或替代方法。谢谢

不可能

不能导入POM的部分。这在某些情况下是可取的(我知道),但我们可能需要等待Maven 5.0.0

我建议:

  • 在父POM中定义所有插件和执行
  • 如有必要,请使用或定义属性来跳过它们
  • 覆盖模块中的属性
这意味着

  • 如果您的插件对应于跳过执行的属性
    myplugin.skip
    ,请在父POM中将其设置为true,并在所有需要它的模块中将其设置为false
  • 如果您的插件有一个配置参数
    skip
    ,但没有属性,请在配置中添加类似
    ${myplugin.skip}
    ,然后使用属性
    myplugin.skip
  • 如果您有一个以上的插件执行,并且需要单独的跳过参数,请执行相同的操作
  • 如果一个插件根本没有skip参数(幸运的是,大多数插件都有一个),您可以使用
    ${myplugin.phase}
    并将
    none
    或正确的阶段放入其中

为这4个子项创建另一个父项,并在其中定义公共配置?也就是说,有1-2个孩子的家长,有3-6个孩子的家长……对不起,请投票人解释一下他/她的批评意见好吗?当然可以。在我看来,使用skip是一件坏事,因为子父母需要不同的配置。最好在目录结构中设置第二级父级,并在那里进行适当的配置。使用skip是我的经历非常难闻。。。并且经常会导致以后在模块等方面发生变化的问题。实际上,我们使用这种结构不是针对多模块,而是针对一家公司的POM。我承认,对于多模块,您的解决方案可能更好。在公司pom中,我也不推荐它。因为这意味着您可能需要其他公司pom…因为跳过的所有内容都需要在某个地方打开…这使得处理比需要的更复杂…@khmarbaise我重视您的建议,但是我想让普通的开发者有一个最简单的配置,如果我能通过一些属性做到这一点,那么它肯定比插件定义更短,更容易掌握。