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



>我有一个像这样的 Maven 项目目录 -

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

我想替换上下文目录中的项目属性中的内容。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

测试属性可以替换为

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>

但它不起作用,我想像测试属性一样替换项目属性中的内容。任何人都可以提供帮助,非常感谢!

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

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

最新更新