【发布时间】:2011-03-22 01:22:15
【问题描述】:
使用maven2编译时需要在目标目录下创建一个子目录。原因是我正在使用一个插件来获取对 SOAP 请求的响应并将它们存储在集成测试阶段的 /target/xml 中。
问题是,如果我将插件的保存路径指定为(例如):${basedir}/target/xml,插件会抛出 FileNotFoundException。我希望文件位于 /target 的原因是在调用 mvn clean 时清理目录。
有什么建议吗?
【问题讨论】:
使用maven2编译时需要在目标目录下创建一个子目录。原因是我正在使用一个插件来获取对 SOAP 请求的响应并将它们存储在集成测试阶段的 /target/xml 中。
问题是,如果我将插件的保存路径指定为(例如):${basedir}/target/xml,插件会抛出 FileNotFoundException。我希望文件位于 /target 的原因是在调用 mvn clean 时清理目录。
有什么建议吗?
【问题讨论】:
您可以创建一个通用的抽象基类,由您的测试用例类扩展。
向抽象基类添加一个静态初始化程序初始化程序,检查目录是否存在,如果不存在则创建它。
静态初始化块将在第一次加载基类时执行,并将在测试用例子类中的任何静态初始化块或构造函数之前执行。
编辑: 好的,那么你必须使用下面的插件定义来 uglify 你的 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>
【讨论】: