当我使用命令:mvn test时,maven使用主要资源而不是src / test / resources中的测试资源。
如何让maven使用测试资源而不是主要资源?
编辑:我使用Classloader查找我的资源。类加载器可以从我的src / test / resources目录中找到资源,但它首先在src / main / java中查找资源。
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream file =loader.getResourceAsStream("resource.xml");
或者在运行maven命令时是否可以使用任何属性来优先考虑类路径?
编辑2:我已经发现了问题,它确实从测试/资源加载测试,但我的测试涉及部署webapp(集成测试),当webapp访问资源时,它使用src / main /资源。有没有办法改变类路径的顺序,或者为一个部署在jetty容器中的WAR使一个在另一个之前?答案 0 :(得分:6)
请检查目标/测试类目录中的 resource.xml 。 你的文件应该在这里。如果你找到这个文件,我认为同样的名字是问题所在。尝试将文件重命名为例如test-resource.xml。如果test-classes目录中不存在该文件,则应在maven pom.xml中配置资源管理。使用maven-resouce-plugin。 希望它有所帮助。
答案 1 :(得分:4)
你不能给它另一个名字吗?
加载程序不知道您的 resource.xml 位于src/main/resources
或src/test/resources
,它只是一个要查找的路径。我认为这不是Maven的问题,这就是Loader应该如何工作的。从Maven开始,您希望在进行测试阶段时从src/main/resources
丢弃所有类/资源吗?