maven-resources-plugin 将资源副本中断到测试类

标签 maven maven-resources-plugin

通常,我的 POM 文件工作正常,所有单元测试都通过,所有 Artifact 都正确打包。但是,一旦我添加了这个 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>   

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

最佳答案

经过多次反复试验,我找到了解决方案。 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>

关于maven-resources-plugin 将资源副本中断到测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28071118/

相关文章:

java - Artifact 存在于 2 个 Maven 存储库中 - 存储库冲突

java - 有选择地对已弃用的 JavaEE 模块使用第三方实现

java - Maven - 对于 Artifact ,版本不能为空

java - maven过滤在构建过程中替换多个 token ?

java - ColdFusion 程序员想要使用新版本的 Java APNS 但不知道如何编译 Java

scala - 输出路径在同一模块之间共享错误

java - 如何使用 maven-resources-plugin 将过滤后的资源包含到 WEB-INF/classes 中?

使用复制资源目标 : 'resources' , 'outputDirectory' 丢失或无效的 maven-resources-plugin 错误

maven - Maven 'import' 资源依赖可以吗?

java - 为什么 maven-war-plugin 忽略我配置的 Web 资源过滤器?