gpt4 book ai didi

maven - 向 Maven 生命周期添加阶段?

转载 作者:行者123 更新时间:2023-12-04 02:27:20 27 4
gpt4 key购买 nike

我尝试在 Maven 生命周期中添加一些额外的阶段。主要是增加一些额外的测试级别:

<phases>
<phase>initialize</phase>
<phase>process-resources</phase>
<phase>compile</phase>
<phase>process-test-resources</phase>
<phase>test-compile</phase>
<phase>test</phase>
<phase>prepare-package</phase>
<phase>package</phase>
<phase>pre-integration-test</phase>
<phase>integration-test</phase>
<phase>post-integration-test</phase>
<phase>pre-application-test</phase>
<phase>application-test</phase>
<phase>post-application-test</phase>
<phase>pre-system-test</phase>
<phase>system-test</phase>
<phase>post-system-test</phase>
<phase>finalize-tests</phase>
<phase>install</phase>
<phase>deploy</phase>
</phases>

以上包含新的应用程序测试和系统测试阶段(包括前期和后期)。

我在 codezoo-lifecycle-maven-plugin 开始了一个测试插件
我用于测试的 pom 在 src/it文件夹。

似乎新阶段或有所回升,但发生了一些奇怪的事情:
mvn post-application-test

这行得通。我为测试添加的回声插件也被执行。但是有一些警告(使用 maven 3.3.9)。
mvn install

执行默认生命周期跳过新阶段。

如果我将生命周期的“测试级别”的 ID 更改为“默认”,则阶段会执行两次。

发出的警告是:
[WARNING] Duplicated lifecycle phase package. Defined in default but also in test-levels
[WARNING] Duplicated lifecycle phase pre-integration-test. Defined in default but also in test-levels
[WARNING] Duplicated lifecycle phase integration-test. Defined in default but also in test-levels
....

source code发出此警告表示生命周期未正确命名空间。但我无法弄清楚这是如何做到的。

我在网上找到了一些提示: create-a-new-phase (Stackoverflow) 或其他插件,如 maven-scm-publish-plugindocker-maven-plugin .但是那些要么创建一个完整的新生命周期,要么只是从默认的 Maven 生命周期更改插件映射。

网络上有关此主题的所有其他内容似乎至少有 4 年历史了……

所以:
  • 如何向 Maven 默认生命周期添加其他阶段(如果我必须重复默认插件映射:我可以忍受)
  • 如何命名新的生命周期?似乎我创建了自己的包装(在配置中被称为角色提示)。但是 Maven 仍然有一些回退到默认生命周期。
  • 可以不重复使用默认的 Maven 阶段吗?

  • test plugin is on github 的当前状态.

    谢谢!

    最佳答案

  • 如果需要,您可以添加生命周期和阶段。
  • 但推荐的方法是:
  • 您已经有一个明确定义的 build 24 phases 的生命周期
  • 实现您的custom plugin如果你在 maven repo 上没有找到它并将它绑定(bind)到任何 phase这是最合适的。
  • 这种方式很容易维护,因为每个开发人员都已经与默认阶段保持一致,并且如果您在任何特定阶段添加了更多插件执行,那么很容易理解您想要做什么。


  • 当然,您可以根据需要使您的项目变得复杂,但通常认为添加生命周期和阶段是不好的做法,直到您在构建生命周期的上下文中没有非常大的事情要管理。

    关于maven - 向 Maven 生命周期添加阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36617759/

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