注意:此示例改进了多项目测试的说明书。
你的 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>