5

我已经有一段时间没有编程了,我正在重新开始编程,我遇到了一个非常特殊的问题。过去,每当我从 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 文件从我的测试源树复制到我的 target/test-classes 目录。就像我说的,过去 2 年中所有其他较旧的项目都在复制 *.xml 文件,而我没有指定testResources.

什么可能导致这种行为?

4

2 回答 2

7

您应该将资源文件放在src/test/resourcesnotsrc/test/java中,这是用于 java 源文件的。

于 2013-09-12T09:07:01.690 回答
1

要控制(也)复制哪些文件,请查看资源插件文档

于 2016-01-12T15:12:21.417 回答