Maven - 添加自定义阶段以执行其他配置的插件

时间:2010-06-27 10:40:40

标签: maven-2 testng phase

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

我已经使用TestNG注释@Test(groups="manual"注释了手动测试。现在的目标是拥有两个配置的surefire插件,一个运行自动测试,绑定到构建的测试阶段,另一个运行手动测试,绑定到另一个我想调用的自定义阶段{{ 1}}。似乎不可能将插件的执行绑定到不存在的阶段(即未由maven预定义的阶段)。是不是可以定义自己的阶段?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

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

使用此依赖项:

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

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

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