无法读取Maven属性

时间:2013-11-20 08:52:00

标签: java maven properties

我尝试在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

谢谢大家的建议!

1 个答案:

答案 0 :(得分:2)

变化

${project.application.root.url}

${application.root.url}