下面是一个示例,说明如何使用 Invoker 插件运行一组 Maven 项目,然后使用BeanShell或Groovy脚本验证它们的输出。在这种情况下,脚本文件的名称是verify.bsh。
<project>
<build>
<plugins>
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.3</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>
这是一个示例构建后 BeanShell 脚本 ( verify.bsh ),它在构建运行后检查 JAR 文件是否存在。如果 JAR 文件不存在,则脚本返回false,这会导致 Invoker Plugin 记录构建失败。更准确地说,任何不等于true的返回值都将被解释为失败条件。当然,如果脚本由于异常而异常存在,插件也会将相应的构建标记为失败。
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;
作为构建后挂钩脚本的补充,您还可以创建将在调用 Maven 之前运行的构建前挂钩脚本。这可以用来为构建做一些准备。
为了允许脚本从测试项目中定位文件,Invoker 插件将在运行脚本之前定义以下全局变量:
| 姓名 | 类型 | 描述 | 自从 |
|---|---|---|---|
| 基于的 | java.io.文件 | 测试项目基目录的绝对路径。 | 1.0 |
| 本地存储库路径 | java.io.文件 | 用于在测试项目上调用 Maven 的本地存储库的绝对路径。 | 1.3 |