【发布时间】:2019-10-04 00:37:47
【问题描述】:
我继承的 Maven 项目有一些 JUnits 中使用的资源文件。
这些文件在属性文件中被称为绝对路径。
假设 Maven 项目位于 myproject 下,主 pom.xml 所在的位置。
config.properties 文件有:
keystore.file=C:/Users/tom/myproject/web/src/test/resources/myfile.jks
我想从 Maven 项目的相对路径中引用该资源。
所以我一直在尝试类似的东西:
keystore.file=${project.basedir}/web/src/test/resources/myfile.jks
我一直在阅读resource filtering 中提到的this question。
项目使用SpringBoot,运行JUnit时报错:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'project.basedir' in string value "${project.basedir}/web/src/test/resources/myfile.jks"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)
【问题讨论】:
-
“没有好的结果”是什么意思。 ?实际结果是什么?
-
你可以试试这样 keystore.file=./web/src/test/resources/myfile.jks。它来自当前目录。
-
@nephewtom 你能告诉我你的maven项目结构吗?我在这里添加了示例github.com/sbzDev/stackoverflow/tree/master/question56173541
-
@SergeyBzhezitskiy 我的意思是运行 JUnit 无法理解文件路径,而使用绝对路径它可以工作。
-
@SergeyBzhezitskiy 好吧,真正的项目多了一层。它有
myproject/pom.xml和myproject/web/pom.xml,这是 JUnit 所在的位置。
标签: java maven spring-boot junit properties-file