下面是一个示例,说明如何使用 Invoker 插件运行一组 Maven 项目,然后使用 BeanShell 脚本验证它们的输出。在这种情况下,脚本文件的名称是verify.bsh。
<project> <build> <plugins> <plugin> <artifactId>maven-invoker-plugin</artifactId> <version>1.2.1</version> <configuration> <debug>true</debug> <projectsDirectory>src/it</projectsDirectory> <pomIncludes> <pomInclude>**/pom.xml</pomInclude> </pomIncludes> <pomExcludes> <pomExclude>**/child*/pom.xml</pomExclude> <pomExclude>**/module*/pom.xml</pomExclude> </pomExcludes> <postBuildHookScript>verify.bsh</postBuildHookScript> </configuration> <executions> <execution> <id>integration-test</id> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
这是一个示例构建后脚本 ( verify.bsh ),它在构建运行后检查 JAR 文件是否存在。如果 JAR 文件不存在,则脚本返回false,这会导致 Invoker Plugin 记录构建失败。java.io.File类型的全局变量basedir可用于引用当前集成测试的基目录。
import java.io.*; try { File file = new File( basedir, "target/my-test-project-1.0-SNAPSHOT.jar" ); if ( !file.isFile() ) { System.err.println( "Could not find generated JAR: " + file ); return false; } } catch( Throwable t ) { t.printStackTrace(); return false; } return true;