0

浏览 maven-plugin 源代码(例如'clean-plugin'),我遇到了verify.bsh文件,其内容为

import java.io.*;
import java.util.*;
import java.util.jar.*;
import java.util.regex.*;

try
{
    File targetDir = new File( basedir, "target" );
    System.out.println( "Checking for absence of " + targetDir );
    if ( targetDir.exists() )
    {
        System.out.println( "FAILURE!" );
        return false;
    }
}
catch( Throwable t )
{
    t.printStackTrace();
    return false;
}

return true;

我想知道,这究竟是什么?这似乎是 Java 代码,但我在这里看不到任何classormethod或 a main。请帮助我理解这一点。

4

2 回答 2

1

它似乎是使用maven-invoker-plugin启动的集成测试的一部分。

您提到的测试会创建符号链接并检查 build clean 插件是否实际删除了其中包含符号链接的目录。

于 2012-11-30T17:35:21.233 回答
0

正如第一个答案中提到的,这是用于通过 maven-invoker-plugin 运行集成测试的beanshell代码。BeanShell 的问题在于,似乎不再有积极的开发(svn 存储库无法访问等)。我更喜欢 Groovy 来编写与集成测试相关的集成测试。

通过 maven-invoker-plugin 设置 maven 环境来完成代码的调用,该环境执行完整的 maven 调用,之后您可以检查目标文件夹的内容或者可能是 build.log 的内容(运行期间的 mvn 输出) 是否包含预期的内容。

在插件中,您通常具有以下结构

./
+- pom.xml
+- src/
   +- it/
      +- settings.xml
      +- first-it/
      |  +- pom.xml
      |  +- src/
      +- second-it/
         +- pom.xml
         +- invoker.properties
         +- test.properties
         +- verify.bsh
         +- src/

src/it包含插件的集成测试。例如,第二个它包含一个带有 pom.xml 文件等的单独 maven 项目,它将在集成测试期间通过 maven 运行。verify.bsh 将在 Maven 调用结束后调用,以检查一切是否符合预期。

于 2012-12-07T08:20:18.167 回答