我有一个springmvc maven项目通过IntelliJ Idea,我将logbak.xml放在src/main/resources
文件夹中,将另一个logbak.xml放在src/test/resources
文件夹中。
运行Junit Test时,test文件夹中的logbak.xml工作正常。 在tomcat服务器上运行我的web时,主文件夹中的logbak.xml工作。
如果我在test文件夹中没有logbak.xml,那么主文件夹中的logbak.xml就可以了。
为什么logbak.xml无法加载两次? 当不同的运行时,如何确定哪个文件可以先加载?
答案 0 :(得分:0)
常规类(src/main/...
)可以独立工作(没有测试部分中的那些)。这些是实现程序或库的实际工作的类。
因此,如果您打包所有内容,则只包含常规类。
正如您所看到的,将使用来自src / main的logback.xml。
测试类(src/test/...
)用于测试常规类。因此,您需要类路径中的测试类和常规类(以及相应的资源)。
在常规类By Maven(IDE使用Maven提供的信息)之前,测试类被添加到类路径中 - 因此测试部分中存在的类/资源具有更高的优先级。如果请求的类/资源在测试部件中不存在但在主要部件中,则加载主部件中的一个/资源 - 正如您所观察到的那样。