java - 默认情况下,Maven 不会将 src/test/java 中的 *.xml 文件复制到目标/测试类

标签 java maven testing resources classpath

我已经有一段时间没有编程了,现在又重新开始,我遇到了一个非常奇怪的问题。过去,每当我从 Maven 中编译测试代码时,它都会将测试源树中包含的所有 *.xml 资源文件复制到 target/test-classes 中。但是昨晚,在我当前的项目中,它不再这样做了——这不是我所期望的。每当我通过 Maven 或 Intellij IDEA 运行测试时,测试都会失败,因为它在类路径中找不到任何 *.xml 文件——它们从未被复制过。

我的计算机上有使用完全相同的 .pom 文件和项目结构的旧项目,并且 *.xml 文件可以正常复制。

为了解决这个问题,我在我的 Maven POM 中包含了以下 XML:

    <testResources>
        <testResource>
            <directory>src/test/java</directory>
            <filtering>false</filtering>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </testResource>
    </testResources>

虽然这解决了问题,但我仍然很好奇为什么我不得不特意告诉 Maven 手动将 *.xml 文件从我的测试源树复制到我的目标/测试类目录。正如我所说,过去 2 年中所有其他较旧的项目都在复制 *.xml 文件,而我没有指定 testResources

是什么导致了这种行为?

最佳答案

你应该把资源文件放在src/test/resources而不是src/test/java,后者是java源文件。

关于java - 默认情况下,Maven 不会将 src/test/java 中的 *.xml 文件复制到目标/测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759979/

相关文章:

java - 将多个特定文件作为来自另一个 java 程序的一个字符串 arg 传递

java - 如何在不破坏应用程序输出的情况下重定向 JVM 输出?

java - 获取java xml中节点的节点的节点?

java - 距离上次 "X"一个时钟已经过去了多少时间

eclipse - 设置 maven+jetty+eclipse 的调试配置

java - 使用 git 存储库在 Eclipse 中管理 Maven 项目

java - Jenkins - 'mvn' 未被识别为内部或外部命令、可操作程序或批处理文件

testing - Clojure 测试 : global fixtures

unit-testing - 跳过 Grails 中的测试

python - 如何告诉 tox 使用 PyPI 镜像来安装包?