将一个测试资源移动到Maven中磁盘上的某个位置

时间:2013-10-28 22:23:21

标签: java unit-testing maven maven-resources-plugin

我有一个位于resources/src/test/dir/sample.json的测试资源,在运行单元测试之前需要移动到/tmp/data/sample.json。我想使用Maven自动移动此文件,而不会干扰需要移动到目标的其他测试资源。原因是在生产中这个文件来自jar之外。

查看Maven的resource:testResources目标here以及插件。我不知道在哪里指定outputDirectory,尤其是在不干扰任何其他事情的情况下。

在研究时会发布更多信息,但我特别担心会有几种方法可以做到这一点,而且最常见的是哪种方式并不明显。

1 个答案:

答案 0 :(得分:1)

假设您是packaging jar,您的resources:testResources生命周期中会process-test-resources。您需要像往常一样复制测试资源的默认执行以及将特定资源复制到特定输出目录的额外执行。

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>resources</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <id>execution1</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>testResources</goal>
            </goals>
          </execution>
          <execution>
            <id>execution2</id>
            <phase>process-test-resources</phase>
            <configuration>
              <outputDirectory>
                 ...
              </outputDirectory>
              <resources>
                 ...
              </resources>
            </configuration>
            <goals>
              <goal>testResources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

See also