如何在src / main / webapp中的所有文件中扩展Maven属性?

最后发布: 2014-10-27 14:50:12


问题

我想在src/main/webapp/META-INF/context.xml包含一些Maven属性(*)。

(*) 例如${data-source-name}${data-source-factory}${jdbc-connection-url}等等 - 但用已故的伟大的Leslie Nielsen的话说,现在这不重要。

认为这可能是使用类似下面的maven-resource-plugin配置实现的:

<build>
  <resources>
    <resource>
      <directory>src/main/webapp</directory>
      <includes>
        <include>**/*</include>
      </includes>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

但是这导致WAR文件中有两个版本的context.xml:

\META-INF\context.xml                 <=== Properties *not* expanded
\WEB-INF\classes\META-INF\context.xml <=== Properties expanded

我哪里错了?

maven java-ee war context.xml maven-resources-plugin
回答

经过一番谷歌搜索后,我发现如何使用maven-war-plugin而不是maven-resources-plugin来做到这一点:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <configuration>
        <webResources>
          <resource>
            <directory>src/main/webapp</directory>
            <filtering>true</filtering>
          </resource>
        </webResources>
      </configuration>
    </plugin>
  </plugins>
</build>