我已经有一段时间没有编程了,现在又重新开始,我遇到了一个非常奇怪的问题。过去,每当我从 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/