访问文件存在于 /test/resources - 类路径问题中



我正在做一个Spring多模块项目。其中一个子模块在/test/resources/certs/下有一些文件,在/test/resources/test-ssl.properties 下有一个属性文件。

───resources │ test-ssl.properties ├───certs │ test-keystore.p12

test-ssl.properties有一个指向/certs/test-keystore.p12文件的属性。

server.ssl.trust-store=/certs/test-keystore.p12

在子模块pom中.xml我正在使用Maven插件test-jar,在父pom中,我已将此模块添加为依赖项。

使用父模块中存在的此结构集成测试能够成功读取classpath:test-ssl.properties但无法解析其属性值。

春天抛出FileNotFoundException: certstest-keystore.p12.我们可以做哪些更改来使 Spring 读取测试罐中存在的文件?

还尝试了以下模式,

server.ssl.trust-store=classpath:/certs/test-keystore.p12

server.ssl.trust-store=classpath:certs/test-keystore.p12

server.ssl.trust-store=classpath*:/certs/test-keystore.p12

请注意,此测试属性不会尝试加载任何证书。之所以存在,是因为属性占位符可以在生成期间找到属性的某些值。

通过将integration-test阶段更改为process-test-resources来解决问题。

感谢Pascal Thivent的以下答案:

测试输出目录(target/test-classes)的内容位于类路径上,而不是 src/test/resources 上。但是 src/test/resources 下的资源由 resources:testResources 目标复制到测试输出目录(默认情况下绑定到 process-test-resources 阶段)。