模块化项目中的资源过滤

时间:2014-02-24 12:21:12

标签: java maven maven-3

我有一个maven多模块项目(模型,服务,工具,webapp)。我在webapp项目的pom.xml中定义了一些配置文件。

<profile>
        <id>Dev</id>
        <properties>
            <db.driverClass>..</db.driverClass>
            <db.connectionURL>..</db.connectionURL>
            <db.username>..</db.username>
            <db.password>..</db.password>
            <pathFile>myFolder/myFirstPath/</pathFile>
        </properties>
    </profile>

    <profile>
        <id>Prod</id>
        <properties>
            <db.driverClass>..</db.driverClass>
            <db.connectionURL>..</db.connectionURL>
            <db.username>..</db.username>
            <db.password>..</db.password>
            <pathFile>myFolder/mySecondPath/</pathFile>
        </properties>
    </profile>

我正在尝试动态更改位于我的util项目中的属性路径。 这是我的模块化项目的骨架

|-- parent
`-- pom.xml
    |-- model
    |   `-- pom.xml
    |-- util
        |--src
            |--main
                |--resources
                    |--props
                        props.properties
    |   `-- pom.xml
    |-- webapp
    `   -- pom.xml  

在util项目的pom.xml中,我启用了资源过滤

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

最后我写了

  

pathToChange = $ {pathFile}

props.properties文件中的

。但是当我跑步时

  

mvn jetty:运行-P Dev

pathToChange属性的值不会更改。 我在哪里做错了?

1 个答案:

答案 0 :(得分:2)

您已在错误的项目中定义了配置文件。您可以在webapp中使用它们,而不是util。这些项目属性仅与它们定义的项目相关,除非这是父pom。在一个pom中定义的属性不能(否则)用在另一个pom中。