将maven过滤器配置为applicationContext.xml

时间:2016-06-09 22:46:53

标签: maven

我正在尝试配置maven过滤器来更改applicationContext.xml中的某些值,请参阅我的过滤器:

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/webapp/WEB-INF</directory>
                <filtering>true</filtering>
                <targetPath>WEB-INF</targetPath>
            </resource>
        </resources>

在“WEB-INF”里面我有applicationContext.xml,看到代码的和平:

<property name="jdbcUrl" value="jdbc:postgresql://localhost/${project.build.finalName}" />

当我执行mvn install maven时,使用新的applicationContext.xml文件在 / WEB-INF / classes / WEB-INF 中生成另一个文件夹WEB-INF,其中$ {project.build。 fileName}已解析,但 / WEB-INF / 中的applicationContext.xml没有解析$ {project.build.finalName}。

1 个答案:

答案 0 :(得分:0)

src / main / webapp及以下文件不是普通资源,而是网络资源。它们由maven-war-plugin过滤。

请参阅this answer

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.5</version>
        <configuration>
            <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
            <webResources>
                <resource>
                    <directory>src/main/webapp/WEB-INF</directory>
                    <targetPath>/WEB-INF</targetPath>
                    <filtering>true</filtering>
                </resource>
           </webResources>
        </configuration>
    </plugin>
 </plugins>