标准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下的资源
./
但在local
环境中 - 例如在本地mvn test
克隆的根目录下运行git
- 然后当前目录是git repo root目录。 "亲戚"因此,工件的路径是
./src/[test|main]/resources
虽然我意识到工件也可以通过classLoader.getResourceAsStream
访问,但我有apis'需要File
访问权限。我们使用类似listFiles()
的api,并且还需要使用file://
uri以及文字路径在给定目录中生成文件。所以我们确实需要文件路径。
这里可以做些什么来规范化这些不同用例/环境的路径?