【发布时间】:2018-10-26 05:04:08
【问题描述】:
我正在开发一个 Spring 多模块项目。其中一个子模块在 /test/resources/certs/ 下有一些文件,在 /test/resources/test-ssl.properties 下有一个属性文件。
───resources
│ test-ssl.properties
├───certs
│ test-keystore.p12
test-ssl.properties 有一个指向/certs/test-keystore.p12file 的属性。
server.ssl.trust-store=/certs/test-keystore.p12
在子模块 pom.xml 中,我使用 Maven 插件 test-jar,在父 pom 中,我将此模块添加为依赖项。
在父模块中存在此结构集成测试能够成功读取classpath:test-ssl.properties,但无法解析其属性值。
弹簧投掷FileNotFoundException: \certs\test-keystore.p12。我们可以做些什么改变让 Spring 读取测试 jar 中存在的文件?
还尝试了以下模式,
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
请注意,此测试属性不会尝试加载任何证书。它在那里是因为属性占位符可以在构建期间为属性找到一些值。
【问题讨论】:
-
我希望文件在
src/test/resources下?类路径条目应类似于classpath:/test-ssl.properties... -
试过这个但不行。 Spring能够成功读取
test-ssl.properties文件但server.ssl.trust-store属性的值。 -
我不确定 spring 本身是否可以读取证书文件,因为必须在 JVM 启动期间完成证书...
-
此测试属性不加载任何证书,它存在以便属性占位符可以在集成测试期间找到一些属性。这可以是任何扩展名的任何文件。