我面临一个问题,测试/资源没有被选中,而是 jar 的主要/资源被选中
场景是这样的:Myproject src/test/resources --- 有 config.xml w abc.jar 应该需要它,它是 Myproject 中的依赖项。
当为 Myproject 运行测试用例时,它会加载 abc.jar 的 config.xml 而不是 Myproject test/resources。 - 我需要知道 maven 选择资源的顺序。 - 或者我无法尝试。
谢谢。
最佳答案
来自 target/tests-classes
的文件(默认情况下)包含在测试类路径的开头。因此,在运行测试时,来自 src/main/resources
和 src/test/resources
的资源都在类路径中,但后者优先于前者。换句话说,如果您在 src/main/resources
和 src/test/resouces
中有一个 config.xml
:
src/main/resources/config.xml
将被打包到最终的工件中 butsrc/test/resources/config.xml
运行测试时会用到
如果这不是您遇到的情况,则一定是其他地方有错误。
如果您想说服自己可以运行 mvn -X test
,这将打印测试类路径。你会看到这个类路径由(按此顺序)组成:
目标/测试类
目标/类
- 项目jar
- 依赖项(包括具有测试范围的依赖项)
关于maven-2 - Junit 运行时不选择文件 src/test/resources。对于某些依赖 jar 所需的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764723/