从SpringBoot项目的属性文件中获取基于Maven的内容

时间:2019-05-16 17:14:33

标签: java maven spring-boot junit properties-file

我继承的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)

1 个答案:

答案 0 :(得分:1)

尝试了不同的方法后,找到了解决我问题的方法。
在Spring Boot application.properties中添加以下行:

maven.basedir=@project.basedir@

然后在config.properties中输入:

keystore.file=${maven.basedir}/web/src/test/resources/myfile.jks

使它起作用。
检查:Spring Boot automatic Property Expansion Using Maven.