gpt4 book ai didi

maven-2 - 编写 Maven 插件/Mojo : how do you make a goal force the execution of other goals?

转载 作者:行者123 更新时间:2023-12-04 15:36:47 26 4
gpt4 key购买 nike

注意:此线程是关于编写自定义 Mojo,而不是使用插件。

我维护了一个 testing plugin对于 Maven。不幸的是,近一年来,我一直让这个特殊的未知事物徘徊不去,我真的很想知道如何处理它,以便其用户可以拥有更简单的配置。

假设我们的插件有两个目标:

  • prepare (阶段:生成源)
  • do (阶段:编译)

  • 我要配置 do Mojo 需要 prepare已在构建的早期阶段执行。但是, descriptor documentation 中没有任何内容建议我可以。

    用户可能不关心或不理解 prepare 的意义。目标,所以我不想强制他们在他们的 POM 中指定它。当然,我可以直接从 do 执行 Mojo。 ,然后是 prepare目标将在比预期更晚的阶段运行。

    (我查看了 custom lifecycles ,但这看起来似乎每个在他们的 POM 中已经有 prepare 目标的人都会在运行 do 时执行两次。)

    最佳答案

    你可以有如下内容(取自 CompilerMojo):

    /**
    * @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
    * @version $Id: CompilerMojo.java 941498 2010-05-05 21:24:11Z krosenvold $
    * @since 2.0
    * @goal compile
    * @phase compile
    * @threadSafe
    * @requiresDependencyResolution compile
    */

    通过在您的类上设置它,它将在编译阶段(在本例中)执行。编译阶段要求先执行所有先前的阶段( validate, generate-sources, process-sources, generate-resources, process-resources ...)。

    基本上,在您需要的阶段(甚至是同一个阶段)之后选择一个阶段,它应该可以工作。

    关于maven-2 - 编写 Maven 插件/Mojo : how do you make a goal force the execution of other goals?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557575/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com