6

通常,我的 POM 文件工作正常,所有单元测试都通过并且所有工件都正确打包。但是,一旦我添加了这个 maven-resources-plugin 以根据配置文件创建特定配置,我的所有测试都会失败,因为 'src/test/resources' 中的任何内容都不会复制到 'test-classes':

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <overwrite>true</overwrite>
                <outputDirectory>${project.build.directory}/${config.dir}/${project.activeProfiles[1].id}</outputDirectory>
                <resources>
                    <filtering>true</filtering>
                    <resource>
                        <directory>src/main/resources</directory>
                    </resource>
                </resources>
            </configuration>
        </plugin>   

我不明白为什么这会阻止复制测试资源。有任何想法吗?

4

3 回答 3

2

经过多次反复试验,我找到了解决方案。maven-resources-plugin 需要附加到 process-resources 阶段,以便一切都按预期解决。现在,这可能不是最好的答案,但它对我有用。如果您有更好的解决方案,请告诉我。

<executions>
  <execution>
     <id>create specific server configuration</id> 
     <phase>process-resources</phase> 
     <goals>
       <goal>resources</goal> 
     </goals>
    <configuration>
    /** as above **/
    </configuration>
  </execution>
</executions>
于 2015-01-22T19:53:37.683 回答
1

我相信您需要添加一些配置:

<testResources>
    <testResource><directory>src/test/resources</directory></testResource>
</testResources>
于 2015-01-21T15:54:01.557 回答
0

问题是您试图将测试资源作为主要资源,而不是测试资源。

我用这段代码完成了它:

<testResources>
 <testResource>
  <directory>src/test/java</directory>
   <filtering>true</filtering>
   <includes><include>**/*.xml</include></includes>
  </testResource>
</testResources>
于 2016-01-08T09:55:16.083 回答