Maven 2 Junit运行时不拾取文件src/test/resources。对于某个依赖项jar所需的文件

Maven 2 Junit运行时不拾取文件src/test/resources。对于某个依赖项jar所需的文件,maven-2,resources,junit,testing,surefire,Maven 2,Resources,Junit,Testing,Surefire,我面临一个问题,测试/资源没有被选取,而是jar的主/资源被选取 场景类似于:Myproject src/test/resources---have config.xml w abc.jar应该需要它,它是Myproject中的一个依赖项 为Myproject运行测试用例时,将加载abc.jar的config.xml,而不是Myproject测试/资源。 -我需要知道maven选择资源的顺序。 -或者我尝试的是什么是不可能的 谢谢。来自目标/测试类的文件(默认情况下)包含在测试类路径的开头。因此

我面临一个问题,测试/资源没有被选取,而是jar的主/资源被选取

场景类似于:Myproject src/test/resources---have config.xml w abc.jar应该需要它,它是Myproject中的一个依赖项

为Myproject运行测试用例时,将加载abc.jar的config.xml,而不是Myproject测试/资源。 -我需要知道maven选择资源的顺序。 -或者我尝试的是什么是不可能的


谢谢。

来自
目标/测试类的文件(默认情况下)包含在测试类路径的开头。因此,当运行测试时,来自
src/main/resources
src/test/resources
的资源都位于类路径上,但后者优先于前者。换句话说,如果在
src/main/resources
src/test/resources
中有一个
config.xml

  • src/main/resources/config.xml
    将打包到最终的人工制品中
  • 运行测试时将使用
    src/test/resources/config.xml
如果这不是你正在经历的,那么肯定是其他地方出了错

如果您想说服自己可以运行
mvn-X测试
,这将打印测试类路径。您将看到这个类路径由(按以下顺序)组成:

  • 目标/测试类
  • target/classes
  • 项目jar
  • 依赖项(包括具有测试范围的依赖项)

    • 我的项目也遇到了类似的问题。所以我在ProjectA中有TestClassA,它从ProjectB调用ClassB。ClassB使用src/test/resources中的文件。由于某些原因,此文件未被使用。我发现ProjectA在src/test/resources中有一个同名文件

      总之,尽管ClassB在ProjectB中,但它使用的是ProjectA的src/test/resources,因为测试就是从这个项目开始的

      谢谢你的回复。。。正如你所说的那样。这意味着测试类中的config.xml文件将优先于某些依赖项jar中的config.xml文件。但这种情况在我的案例中并没有发生,依赖项jar正在加载它自己的.xml,而不是我的测试/资源。我能做些什么来追踪它呢。@saddy dj谁正在加载
      config.xml
      ?一个测试用例还是一个JAR类?我想我开始明白问题的原因了…@saddy dj你用什么代码加载文件?您能用代码片段更新您的问题吗?在abc.jar loadFile.java内部调用fileLoderClass.java getFile()方法[fileLoderClass Inside someOther.jar]fileLoderClass以这种方式加载文件。inStream=this.getClass().getClassLoader().getResourceAsStream(this.configFileName);abc.jar中的配置文件这是一个很好理解的东西,因为例如log4j.xml可能在依赖jar的/src/test/properties中,但不在/src/main/resources中,并且当您使用maven assembly插件构建时,它只会在最终的/src/main/resources中选择一个,而不会选择其他,但他们的测试仍然可以运行(并记录)。重新表述问题:Myproject dependency abc.jar class loadFile.java加载abc src/main/resource下的config.xml文件。当我运行Myproject测试用例时,应该选择哪个.xml loadFile.java。1.abc jar主/资源或2。Myproject tase/资源