Author: stephenc Date: Mon Jun 27 14:04:29 2011 New Revision: 1140166 URL: http://svn.apache.org/viewvc?rev=1140166&view=rev Log: working towards having a single set of docs... use velocity #{if}'s to pull in the plugin specific content
Added: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt.vm (contents, props changed) - copied, changed from r1140142, maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt.vm (contents, props changed) - copied, changed from r1140142, maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt.vm (contents, props changed) - copied, changed from r1140142, maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt Removed: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt Modified: maven/surefire/trunk/maven-failsafe-plugin/pom.xml maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/class-loading.apt.vm maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/configuring-classpath.apt.vm maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/inclusion-exclusion.apt.vm maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/skipping-test.apt.vm maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/system-properties.apt.vm maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/testng.apt.vm maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/usage.apt.vm maven/surefire/trunk/maven-surefire-plugin/pom.xml Modified: maven/surefire/trunk/maven-failsafe-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/pom.xml?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/pom.xml (original) +++ maven/surefire/trunk/maven-failsafe-plugin/pom.xml Mon Jun 27 14:04:29 2011 @@ -119,6 +119,11 @@ </site> </distributionManagement> + <properties> + <thisPlugin>Failsafe</thisPlugin> + <thatPlugin>Surefire</thatPlugin> + </properties> + <dependencies> <dependency> <groupId>org.apache.maven</groupId> Modified: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/class-loading.apt.vm URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/class-loading.apt.vm?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/class-loading.apt.vm (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/class-loading.apt.vm Mon Jun 27 14:04:29 2011 @@ -27,16 +27,16 @@ ~~ http://maven.apache.org/doxia/references/apt-format.html -Classloading and Forking in Maven Surefire/Failsafe +Classloading and Forking in Maven Surefire - This page discusses classloading and forking under Maven Surefire/Failsafe, with an eye - towards troubleshooting problems. + This page discusses classloading and forking under Maven Surefire which is a shared component used by both + the Surefire and Failsafe Maven plugins, with an eye towards troubleshooting problems. * Executive Summary If you're having problems, you'll probably want to tinker with these three settings: <<<forkMode>>>, <<<useSystemClassLoader>>>, and <<<useManifestOnlyJar>>>. -* What problem does Surefire solve? +* What problem does the Maven Surefire project solve? Initially, the problem seems simple enough. Just launch Java with a classpath, like this: @@ -49,7 +49,7 @@ java -classpath foo.jar:bar.jar MyApp on different versions of Windows; in some versions only a few hundred characters are allowed, in others a few thousand, but the limit can be pretty severe in either case. - * Update for Surefire 2.8.2 + * Update for Maven Surefire 2.8.2 It turns out setting the CLASSPATH as an environment variable may remove most of the practical length limitations, as documented in http://jira.codehaus.org/browse/SUREFIRE-727. This means @@ -119,7 +119,7 @@ java -classpath booter.jar MyApp classpath the default, though we do provide it as an option (mostly as a last resort). -* What does Surefire do? +* What does Maven Surefire do? Surefire provides a mechanism for using multiple strategies. The main parameter that determines this is called <<<useSystemClassLoader>>>. If <<<useSystemClassLoader>>> is @@ -155,20 +155,6 @@ java -classpath booter.jar MyApp <configuration> <useSystemClassLoader>false</useSystemClassLoader> </configuration> - <executions> - <execution> - <id>integration-test</id> - <goals> - <goal>integration-test</goal> - </goals> - </execution> - <execution> - <id>verify</id> - <goals> - <goal>verify</goal> - </goals> - </execution> - </executions> </plugin> </plugins> </build> @@ -186,4 +172,4 @@ java -classpath booter.jar MyApp * If you're using the defaults, <<<useSystemClassLoader=true>>> and <<<useManifestOnlyJar=false>>>. In that case, look at the generated manifest-only Surefire booter JAR. Open it up (it's just a zip) and read its manifest. - * Run mvn with -Dmaven.failsafe.debug, and attach to the running process with a debugger. \ No newline at end of file + * Run mvn with -Dmaven.${thisPlugin.toLowerCase()}.debug, and attach to the running process with a debugger. \ No newline at end of file Modified: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/configuring-classpath.apt.vm URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/configuring-classpath.apt.vm?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/configuring-classpath.apt.vm (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/configuring-classpath.apt.vm Mon Jun 27 14:04:29 2011 @@ -28,19 +28,26 @@ The Default Classpath - The failsafe plugin builds the test classpath in the following order: + The ${thisPlugin} plugin builds the test classpath in the following order: +#{if}(${project.artifactId}=="maven-surefire-plugin") [[1]] The {{{../test-mojo.html#testClassesDirectory}test-classes}} directory [[2]] The {{{../test-mojo.html#classesDirectory}classes}} directory +#{else} + [[1]] The {{{../integration-test-mojo.html#testClassesDirectory}test-classes}} directory + + [[2]] The {{{../integration-test-mojo.html#classesDirectory}classes}} directory + +#{end} [[3]] The project dependencies [[4]] Additional classpath elements Additional Classpath Elements - If you need to put more stuff in your classpath when Surefire executes (e.g some funky resources or a container specific JAR), + If you need to put more stuff in your classpath when ${thisPlugin} executes (e.g some funky resources or a container specific JAR), we normally recommend you add it to your classpath as a dependency. Consider deploying shared jars to a private remote repository for your organization. @@ -64,20 +71,6 @@ Additional Classpath Elements <additionalClasspathElement>path/to/additional/jar</additionalClasspathElement> </additionalClasspathElements> </configuration> - <executions> - <execution> - <id>integration-test</id> - <goals> - <goal>integration-test</goal> - </goals> - </execution> - <execution> - <id>verify</id> - <goals> - <goal>verify</goal> - </goals> - </execution> - </executions> </plugin> </plugins> </build> @@ -105,20 +98,6 @@ Removing Dependency Classpath Elements <classpathDependencyExcludes>org.apache.commons:commons-email</classpathDependencyExcludes> </classpathDependencyExcludes> </configuration> - <executions> - <execution> - <id>integration-test</id> - <goals> - <goal>integration-test</goal> - </goals> - </execution> - <execution> - <id>verify</id> - <goals> - <goal>verify</goal> - </goals> - </execution> - </executions> </plugin> </plugins> </build> @@ -148,20 +127,6 @@ Removing Dependency Classpath Elements <configuration> <classpathDependencyScopeExclude>runtime</classpathDependencyScopeExclude> </configuration> - <executions> - <execution> - <id>integration-test</id> - <goals> - <goal>integration-test</goal> - </goals> - </execution> - <execution> - <id>verify</id> - <goals> - <goal>verify</goal> - </goals> - </execution> - </executions> </plugin> </plugins> </build> Copied: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt.vm (from r1140142, maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt) URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt.vm?p2=maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt.vm&p1=maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt&r1=1140142&r2=1140166&rev=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt.vm Mon Jun 27 14:04:29 2011 @@ -32,11 +32,11 @@ Debugging Tests Forked Tests - By default, Maven runs your tests in a separate ("forked") process. You can use the <<<maven.failsafe.debug>>> property + By default, Maven runs your tests in a separate ("forked") process. You can use the <<<maven.${thisPlugin.toLowerCase()}.debug>>> property to debug your forked tests remotely, like this: +---+ -mvn -Dmaven.failsafe.debug verify +mvn -Dmaven.${thisPlugin.toLowerCase()}.debug verify +---+ The tests will automatically pause and await a remote debugger on port 5005. You can then attach to the running tests @@ -47,7 +47,7 @@ mvn -Dmaven.failsafe.debug verify instead of port 5005. +---+ -mvn -Dmaven.failsafe.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" verify +mvn -Dmaven.${thisPlugin.toLowerCase()}.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" verify +---+ Non-forked Tests Propchange: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt.vm ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/debugging.apt.vm ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/inclusion-exclusion.apt.vm URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/inclusion-exclusion.apt.vm?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/inclusion-exclusion.apt.vm (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/inclusion-exclusion.apt.vm Mon Jun 27 14:04:29 2011 @@ -30,9 +30,11 @@ Inclusions and Exclusions of Tests * Inclusions - By default, the Failsafe Plugin will automatically include all test classes + By default, the ${thisPlugin} Plugin will automatically include all test classes with the following wildcard patterns: +#{if}(${project.artifactId}=="maven-surefire-plugin") +#{else} * <"**/IT*.java"> - includes all of its subdirectories and all java filenames that start with "IT". @@ -42,10 +44,12 @@ Inclusions and Exclusions of Tests * <"**/*ITCase.java"> - includes all of its subdirectories and all java filenames that end with "ITCase". +#{end} + [] If the test classes does not go with the naming convention, then configure - Failsafe Plugin and specify the tests you want to include. + ${thisPlugin} Plugin and specify the tests you want to include. +---+ <project> @@ -61,22 +65,6 @@ Inclusions and Exclusions of Tests <include>Sample.java</include> </includes> </configuration> - <executions> - <execution> - <id>integration-test</id> - <phase>integration-test</phase> - <goals> - <goal>integration-test</goal> - </goals> - </execution> - <execution> - <id>verify</id> - <phase>verify</phase> - <goals> - <goal>verify</goal> - </goals> - </execution> - </executions> </plugin> </plugins> </build> @@ -106,20 +94,6 @@ Inclusions and Exclusions of Tests <exclude>**/SquareIT.java</exclude> </excludes> </configuration> - <executions> - <execution> - <id>integration-test</id> - <goals> - <goal>integration-test</goal> - </goals> - </execution> - <execution> - <id>verify</id> - <goals> - <goal>verify</goal> - </goals> - </execution> - </executions> </plugin> </plugins> </build> Copied: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt.vm (from r1140142, maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt) URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt.vm?p2=maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt.vm&p1=maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt&r1=1140142&r2=1140166&rev=1140166&view=diff ============================================================================== (empty) Propchange: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt.vm ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/single-test.apt.vm ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/skipping-test.apt.vm URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/skipping-test.apt.vm?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/skipping-test.apt.vm (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/skipping-test.apt.vm Mon Jun 27 14:04:29 2011 @@ -58,14 +58,16 @@ Skipping Tests mvn install -DskipTests +---+ - Since <<<skipTests>>> is also followed by the Surefire Plugin, this will have the effect +#{if}(${project.artifactId}=="maven-failsafe-plugin") + Since <<<skipTests>>> is also followed by the ${thatPlugin} Plugin, this will have the effect of not running any tests. If, instead, you want to skip only the integration tests - being run by the Failsafe Plugin, you would use the <<<skipITs>>> property - + being run by the ${thisPlugin} Plugin, you would use the <<<skipITs>>> property + +---+ mvn install -DskipITs +---+ +#{end} If you absolutely must, you can also use the <<<maven.test.skip>>> property to skip compiling the tests. <<<maven.test.skip>>> is honored by Surefire, Failsafe and the Compiler Plugin. @@ -79,12 +81,14 @@ Skipping by default command line, you need to go via a properties section in the pom: +---+ -<properties> - <skipTests>true</skipTests> -</properties> - -<build> - <plugins> +<project> + [...] + <properties> + <skipTests>true</skipTests> + </properties> + [...] + <build> + <plugins> <plugin> <groupId>${project.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> @@ -92,9 +96,11 @@ Skipping by default <configuration> <skipTests>${skipTests}</skipTests> </configuration> - </plugin> -</plugins> -</build> + </plugin> + </plugins> + </build> + [...] +</project> +---+ This will allow you to run with tests disabled by default and to run them with this command: Modified: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/system-properties.apt.vm URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/system-properties.apt.vm?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/system-properties.apt.vm (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/system-properties.apt.vm Mon Jun 27 14:04:29 2011 @@ -29,7 +29,7 @@ Using System Properties - There are two ways to add a list of system properties to Failsafe: + There are two ways to add a list of system properties to ${thisPlugin}: * systemPropertyVariables Modified: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/testng.apt.vm URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/testng.apt.vm?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/testng.apt.vm (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/examples/testng.apt.vm Mon Jun 27 14:04:29 2011 @@ -61,7 +61,7 @@ Using TestNG This is the only step that is required to get started - you can now create tests in your test source directory (eg, <<<src/test/java>>>. As long as they are named using the defaults such as <<<*IT.java>>> they will be run - by Failsafe as TestNG tests. + by ${thisPlugin} as TestNG tests. If you'd like to use a different naming scheme, you can change the <<<includes>>> parameter, as discussed in the {{{./inclusion-exclusion.html}Inclusions and Exclusions of Tests}} example. @@ -69,7 +69,7 @@ Using TestNG * Using Suite XML Files Another alternative is to use TestNG suite XML files. This allows flexible configuration of the tests to be run. - These files are created in the normal way, and then added to the Failsafe Plugin configuration: + These files are created in the normal way, and then added to the ${thisPlugin} Plugin configuration: +---+ [...] @@ -108,11 +108,11 @@ Using TestNG [...] +---+ - For more information about setting system properties in Failsafe tests, see {{{./system-properties.html}System Properties}}. + For more information about setting system properties in ${thisPlugin} tests, see {{{./system-properties.html}System Properties}}. * Using Groups - TestNG allows you to group your tests. You can then execute one or more specific groups. To do this with Failsafe, + TestNG allows you to group your tests. You can then execute one or more specific groups. To do this with ${thisPlugin}, use the <<<groups>>> parameter, for example: +---+ Copied: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt.vm (from r1140142, maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt) URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt.vm?p2=maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt.vm&p1=maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt&r1=1140142&r2=1140166&rev=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt.vm Mon Jun 27 14:04:29 2011 @@ -30,9 +30,9 @@ Maven Failsafe Plugin - The Failsafe Plugin is designed to run integration tests while the Surefire Plugins is designed to run unit. The name - (failsafe) was chosen both because it is a synonym of surefire and because it implies that when it fails, it does so - in a safe way. + The Failsafe Plugin is designed to run integration tests while the Surefire Plugins is designed to run unit tests. + The name (failsafe) was chosen both because it is a synonym of surefire and because it implies that when it fails, it + does so in a safe way. The Maven lifecycle has four phases for running integration tests: @@ -70,7 +70,7 @@ mvn verify [] - By default, these files are generated at <<<$\{basedir\}/target/failsafe-reports>>>. + By default, these files are generated at <<<$\{basedir\}/target/${thisPlugin.toLowerCase()}-reports>>>. For an HTML format of the report, please see the {{{http://maven.apache.org/plugins/maven-surefire-report-plugin/}Maven Surefire Report Plugin}}. Propchange: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt.vm ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/index.apt.vm ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/usage.apt.vm URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/usage.apt.vm?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/usage.apt.vm (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/site/apt/usage.apt.vm Mon Jun 27 14:04:29 2011 @@ -30,7 +30,7 @@ Usage - To use the Failsafe Plugin, you need to add the following configuration to + To use the ${thisPlugin} Plugin, you need to add the following configuration to your <<<pom.xml>>> +---+ @@ -44,14 +44,8 @@ Usage <version>${project.version}</version> <executions> <execution> - <id>integration-test</id> <goals> <goal>integration-test</goal> - </goals> - </execution> - <execution> - <id>verify</id> - <goals> <goal>verify</goal> </goals> </execution> @@ -63,7 +57,7 @@ Usage </project> +---+ - Then Failsafe Plugin can be invoked by calling the <<<verify>>> phase of the + Then ${thisPlugin} Plugin can be invoked by calling the <<<verify>>> phase of the build lifecycle. +---+ @@ -85,9 +79,9 @@ mvn verify for TestNG). Since this is required to compile the test classes anyway, no additional configuration is required. - Note that any normal Surefire integration works identically no matter which + Note that any normal ${thatPlugin} integration works identically no matter which providers are in use - so you can still produce a Cobertura report and a - Failsafe results report on your project web site for your TestNG tests, + ${thisPlugin} results report on your project web site for your TestNG tests, for example. The POJO provider above allows you to write tests that do not depend on @@ -96,13 +90,14 @@ mvn verify assertions, the JDK 1.4 <<<assert>>> keyword can be used, or you can use <<<org.apache.maven.surefire.assertion.Assert>>>. - All of the providers support the Surefire Plugin parameter configurations. + All of the providers support the ${thatPlugin} Plugin parameter configurations. However, there are additional options available if you are running TestNG tests (including if you are using TestNG to execute your JUnit tests, which - occurs by default if both are present in Surefire). + occurs by default if both are present in ${thatPlugin}). See {{{./examples/testng.html} Using TestNG}} for more information. +#{if}(${project.artifactId}=="maven-failsafe-plugin") * Using jetty and ${project.artifactId} You need to bind one of <<<jetty:run>>>, <<<jetty:run-exploded>>> or <<<jetty:run-war>>> @@ -235,8 +230,8 @@ mvn verify * Reporting integration test results - The Failsafe Plugin uses the exact same format as the Surefire Plugin, so to generate a report you just add a second - Surefire Report Plugin report set using the Failsafe reports directory, e.g. + The ${thisPlugin} Plugin uses the exact same format as the ${thatPlugin} Plugin, so to generate a report you just add a second + Surefire Report Plugin report set using the ${thisPlugin} reports directory, e.g. +---+ <project> @@ -327,3 +322,91 @@ mvn verify </project> +---+ +* Using in multi-module projects + + The recommendations for using the ${thisPlugin} Plugin listed at the top of this page are fine for 95% of use cases. + When you are defining a shared definition of the ${thisPlugin} Plugin in a parent pom, it is considered best practice + to define an execution id in order to allow child projects to override the configuration. Thus you might have the + following in your parent <<<pom.xml>>> + ++---+ +<project> + [...] + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + <executions> + <execution> + <id>integration-test</id> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </pluginManagement> + </build> + [...] +</project> ++---+ + + The child projects can then trigger usage of the ${thisPlugin} Plugin with + ++---+ +<project> + [...] + <build> + <plugins> + <plugin> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + </plugin> + </plugins> + </build> + [...] +</project> ++---+ + + For very complex builds, it may be better to separate the executions for the <<<integration-test>>> and <<<verify>>> + goals. + ++---+ +<project> + [...] + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + <executions> + <execution> + <id>integration-test</id> + <goals> + <goal>integration-test</goal> + </goals> + </execution> + <execution> + <id>verify</id> + <goals> + <goal>verify</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </pluginManagement> + </build> + [...] +</project> ++---+ + +#{end} \ No newline at end of file Modified: maven/surefire/trunk/maven-surefire-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-plugin/pom.xml?rev=1140166&r1=1140165&r2=1140166&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-plugin/pom.xml (original) +++ maven/surefire/trunk/maven-surefire-plugin/pom.xml Mon Jun 27 14:04:29 2011 @@ -126,6 +126,11 @@ </site> </distributionManagement> + <properties> + <thisPlugin>Surefire</thisPlugin> + <thatPlugin>Failsafe</thatPlugin> + </properties> + <dependencies> <dependency> <groupId>org.apache.maven</groupId>