【问题标题】:Maven inheritance does not work when invoking plugin goals from command line从命令行调用插件目标时,Maven 继承不起作用
【发布时间】:2014-01-15 07:55:14
【问题描述】:

我有一个多模块项目。有一个父 pom,其中我已将 maven-dependency 插件添加到插件管理部分。我没有将此插件的执行绑定到一个阶段。在其中一个子模块 pom.xml 中,我添加了具有不同配置的相同插件。 但是,当我从命令行执行时

mvn 依赖:复制

然后只有我的父 pom 插件配置为 maven-dependency 插件执行,所有子模块都被跳过。为什么是这样?继承是否仅在插件绑定到特定阶段时才有效?

【问题讨论】:

    标签: maven-3


    【解决方案1】:

    对此的简单回答是:如果您尝试通过命令运行 maven,就像您调用插件一样,但您不会运行获取继承机制处理 pom 文件所需的生命周期。在您的示例中,如果您会以以下方式开始生命周期:

    mvn package
    

    或类似的东西:

    mvn verify
    

    您的所有子模块都将在生命周期中被访问。

    【讨论】:

    • 谢谢。问题是如果我指定一个阶段,那么子模块也会执行该阶段 - 我希望避免这种情况,因为我只想执行依赖项复制目标。无论如何我可以指定一个阶段,只执行我必要的目标并拥有继承机制?
    • 问题是你的孩子是什么? jar 文件?如果是,则生命周期将贯穿您可能会创建一个具有包装类型 pom 的子级,这可能会解决您的问题。
    • 谢谢。尝试了您提到的内容,发现其他插件(如 antrun 插件等)被子 pom 继承,无论包装和继承机制是否有效,即使我只是指定目标并且不绑定到生命周期阶段。该问题似乎仅特定于有关继承的 maven 依赖插件。也许插件的编写方式不允许继承。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2019-04-09
    相关资源
    最近更新 更多