处理本地vs沙盒maven测试环境中的资源

时间:2018-04-04 20:31:03

标签: maven

标准maven目录结构包括resources,如下所示:

  src/main/resources
  src/test/resources

在沙盒环境中启动maven构建时 - 例如jenkins然后,这些目录中的所有工件都可以在沙盒中获得" current"目录 - 而不是诉诸任何路径 - 相对或绝对。

但是当在本地运行mvn test 时,沙盒环境不起作用:相反,它只是项目的根目录。在这种情况下,似乎需要通过src/main[test]/resources访问这些资源。

具体来说:在sandboxed环境中,所有要运行的类都会被解压缩到临时目录*以及src / [test | main] / resources *. Therefore: the files/artifacts under src / [test下的资源

/ resources`出现在当前目录中。 "亲戚"因此,这些资源的路径是

    ./

但在local环境中 - 例如在本地mvn test克隆的根目录下运行git - 然后当前目录是git repo root目录。 "亲戚"因此,工件的路径是

./src/[test|main]/resources

虽然我意识到工件可以通过classLoader.getResourceAsStream访问,但我有apis'需要File访问权限。我们使用类似listFiles()的api,并且还需要使用file:// uri以及文字路径在给定目录中生成文件。所以我们确实需要文件路径。

这里可以做些什么来规范化这些不同用例/环境的路径?

0 个答案:

没有答案