![](/img/trans.png)
[英]When running test class, properties can't be read properly from .properties file by using @Value annotation, in Spring Maven project
[英]Can't read Maven properties
我試着在這個帖子后面使用Maven中的屬性
我創建了一個屬性:
<properties>
<application.root.url>http://localhost:8080</application.root.url>
</properties>
添加資源和過濾:
<build>
<resources>
<resource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
將“test.properties”文件放在src / test / resources目錄中,其中包含以下內容:
application.root.url=${project.application.root.url}
在Java中,我有這個:
public static Properties getProperties(){
Properties props = new Properties();
try {
props.load(new FileInputStream("test.properties"));
} catch (IOException e){
props = null;
e.printStackTrace();
}
return props;
}
現在,如果我有new FileInputStream("test.properties")
,我得到“找不到文件”異常,如果我放入new FileInputStream("src/test/resources/test.properties")
,那么它返回${application.root.url}
作為屬性application.root.url
的值
我究竟做錯了什么?
更新1:好的,現在我已將${project.application.root.url}
更改為
${application.root.url}
和
props.load(new FileInputStream("test.properties"));
至
props.load(Util.class.getClassLoader().getResourceAsStream("test.properties"));
現在我不再發現“找不到文件”錯誤了。 但我仍然有問題,在target/test-classes/test.properties
值沒有從${application.root.url}
更改(並且在target/classes/test.properties
它被更改...)
最終更新:
最后,當我將'resources'更改為'testResoruces'時,一切都工作了:
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
</build>
謝謝大家的建議!
更改
${project.application.root.url}
至
${application.root.url}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.