我在一个maven项目中有两组集成测试-自动和手动测试。手动测试很少,但很乏味-它们需要拔掉服务器等的插头。我想为手动测试创建一个单独的目标,因此我可以运行mvn manualtests之类的东西来运行手动测试。如果您只是运行普通的Maven构建mvn install左右,则应运行自动测试。

我已经用TestNG注释@Test(groups="manual"注释了手动测试。现在的目标是具有surefire插件的两种配置,一种配置运行到与构建的测试阶段绑定(bind)的自动测试,另一种配置运行到与我想称为manualtests的另一个自定义阶段绑定(bind)的手动测试。似乎不可能将插件的执行绑定(bind)到不存在的阶段(即maven未预定义的阶段)。是否无法定义自己的阶段?

最佳答案

这应该是可能的,尽管并不容易。第一步:看看默认情况下它是如何完成的。

使用此依赖项:

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-core</artifactId>
    <version>${maven.version}</version>
</dependency>

获取源代码并查看META-INF/plexus中的components.xml。在那里,定义了默认阶段和默认生命周期/阶段绑定(bind)。

创建一个覆盖这些默认阶段(在其自己的components.xml中)和define it as an extension的插件

关于maven-2 - Maven-添加自定义阶段以使用其他配置执行插件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3127096/

10-11 22:28
查看更多