0

使用 maven2 编译时,我需要在目标目录中创建一个子目录。原因是我正在使用一个插件来获取对 SOAP 请求的响应并将它们存储在集成测试阶段的 /target/xml 中。

问题是,如果我将插件的保存路径指定为(例如):${basedir}/target/xml,插件会抛出 FileNotFoundException。我希望文件位于 /target 中的原因是在调用 mvn clean 时清理目录。

有什么建议么?

4

1 回答 1

6

您可以创建您的测试用例类扩展的通用抽象基类。
向抽象基类添加一个静态初始化程序初始化程序,检查目录是否存在,如果不存在则创建它。

静态初始化块将在第一次加载基类时执行,并将在测试用例子类中的任何静态初始化块或构造函数之前执行。

编辑:好的,那么你必须使用下面的插件定义来丑化你的 pom,这将绑定到generate-test-resources 阶段,并调用antrun插件来创建目录。

  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.4</version>
        <executions>
          <execution>
            <phase>generate-test-resources</phase>
            <configuration>

              <tasks>
                <echo message="Creating test output directory"/>
                <mkdir dir="./target/xml"/>
              </tasks>

            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
  </build>
于 2010-07-28T09:30:39.170 回答