无法从Maven中的属性文件中检索值

时间:2014-01-09 06:00:04

标签: maven maven-2 maven-3 pom.xml

我使用maven pom.xml(刚开始学习)

我有一些.properties文件(例如:log4j.properties),我应该能够在pom.xml或web.xml文件中检索它们的值,我的意思是如果我使用类似$ {somename的东西。在pom.xml或web.xml中,应该从.properties文件中检索此值。

我的属性文件如下:

src/main/resources/log4j.properties
src/main/env/dev/config.properties

我尝试如下,但无法从属性文件中检索值..我做错了。

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/env/dev</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

请建议我。

2 个答案:

答案 0 :(得分:0)

资源过滤旨在在pom.xml中设置属性,然后在属性文件中使用它。

使用log4j.properties中的$ {somename.version}和pom.xml中的相应代码,$ {somename.version}将替换为您在pom.xml中输入的内容

例如在pom.xml里面

<property> <name>somename.version</name> <value>123</value> </property>

你的log4j.property中的

$ {somename.version}将被123替换

启动mvn包后,您将在目标目录中找到包含替换值的文件

使用配置文件打包时,将使用

资源过滤。每个配置文件都可以更改pom.xml中的属性

您的属性可以保存随环境变化的值,例如Windows配置或Linux配置

答案 1 :(得分:0)

您的配置错误,用于从文件使用中读取属性:

<filters>
    <filter>src/main/resources/log4j.properties</filter>
</filters>

您的实际配置是关于应过滤哪些文件。

有关更多信息和示例请访问:Maven Resource Plugin - Filtering


您也可以使用Properties Maven Plugin