Maven构建war包,替换WEB-INF下的上下文目录中的属性

时间:2014-11-14 07:33:43

标签: maven replace properties resources pom.xml

我有一个Maven项目,目录就像这样 -

MyProjectName
  > src/main/java
  > src/main/resources
     > test.properties
  > src
     > main
        > webapp
           > WEB-INF
              > context
                 > project.properties
  > pom.xml

我想替换上下文目录中project.properties中的内容。 test.properties和project.properties都是 -

myprop2 = ${foo.bar}
像这样的pom.xml -

<project xmlns=...> 
  <dependencies>
    ...
  </dependencies>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    ...
  </build>

  <profiles>
    <profile>
      <id>env-dev</id>
        <activation>
            <property>
              <name>env</name>
              <value>dev</value>
            </property>
        </activation>
        <properties>
            <foo.bar>othervalue</foo.bar>
        </properties>
    </profile>
  </profiles>
</project>

这样,当我跑

mvn process-resources -Denv=dev

test.properties可以替换为

myprop2 = othervalue

但是,我的问题是,我不知道如何在上下文中详细说明该文件,我已经尝试过

src/main/webapp/WEB-INF/context  //1
WEB-INF/context                  //2

<configuration>                  //3
  <webResources>
    <resource>
      <directory>src/main/webapp/WEB-INF/context</directory>
    </resource>
  </webResources>
</configuration>

但它不起作用,我想像test.properties一样替换project.properties中的内容。 任何人都可以提供帮助,非常感谢!

1 个答案:

答案 0 :(得分:0)

maven war插件允许您添加资源文件夹。请参阅“webResources”:http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html

我认为这应该简化一些事情。