如何使用Maven2在目标中创建子目录

时间:2010-07-28 09:20:56

标签: maven-2 pom.xml

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

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

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

编辑: 好的,那么你必须使用下面的插件定义来修改你的pom,它将绑定到 generate-test-resources phase,然后调用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>