我尝试在this thread
之后使用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}
作为属性{{1}的值}}
我做错了什么?
更新1:
好的,现在我改变了
application.root.url
到
${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}
中已更改...)
最终更新:
最后,当我将'资源'更改为'testResoruces'时,一切都工作了:
target/classes/test.properties
谢谢大家的建议!
答案 0 :(得分:2)
变化
${project.application.root.url}
到
${application.root.url}