注意:此示例改进了多项目测试的说明书。
你的 Mojo 应该有@aggregator参数,即:
@Mojo( name = "touch", aggregator = true ) public class MyMojo extends AbstractMojo { ... }
/** * @goal touch * @aggregator */ public class MyMojo extends AbstractMojo { ... }
要在多项目区域中测试 Mojo,您需要定义几个存根,即用于主测试项目及其模块。
主测试项目的存根:
public class MyProjectStub extends MavenProjectStub { /** * Default constructor */ public MyProjectStub() { ... setExecutionRoot( true ); } /** {@inheritDoc} */ public MavenProject getExecutionProject() { return this; } }
子项目的存根:
public class SubProject1Stub extends MavenProjectStub { /** * Default constructor */ public SubProject1Stub() { ... } }
public class SubProject2Stub extends MavenProjectStub { /** * Default constructor */ public SubProject2Stub() { ... } }
<project> ... <build> <plugins> <plugin> <artifactId>maven-my-plugin</artifactId> <configuration> ... <project implementation="org.apache.maven.plugin.my.stubs.MyProjectStub"/> <reactorProjects> <project implementation="org.apache.maven.plugin.my.stubs.SubProject1Stub"/> <project implementation="org.apache.maven.plugin.my.stubs.SubProject2Stub"/> </reactorProjects> </configuration> </plugin> </plugins> </build> </project>