------ Testing Multiproject ------ Vincent Siveton ------ February 2008 ------ ~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. Testing Multiproject <>: This example improves the {{{../getting-started/index.html}cookbook}} for multi-project testing. Your Mojo should have <<<@aggregator>>> parameter, i.e.: ------ /** * @goal touch * @aggregator */ public class MyMojo extends AbstractMojo { ... } ------ To test a Mojo in a multiproject area, you need to define several stubs, i.e. for the main test project and its modules. * Create Stubs Stub for the main test project: ----- public class MyProjectStub extends MavenProjectStub { /** * Default constructor */ public MyProjectStub() { ... setExecutionRoot( true ); } /** {@inheritDoc} */ public MavenProject getExecutionProject() { return this; } } ----- Stubs for the subprojects: ----- public class SubProject1Stub extends MavenProjectStub { /** * Default constructor */ public SubProject1Stub() { ... } } ----- ----- public class SubProject2Stub extends MavenProjectStub { /** * Default constructor */ public SubProject2Stub() { ... } } ----- * Configure <<>> pom ----- ... maven-my-plugin ... -----