3

假设我的 web.xml 文件中有类似的内容。

<filter name="foo">
  <init-param>
    <param-name>fooBarUrl</param-name>
    <param-value>http://foo.bar.com</param-value>
  </init-param>
</filter>

假设开发/测试/生产有不同的 url 值(对于上面的参数值)。有没有办法可以在 pom 中使用过滤器和/或配置文件来消除每次应用程序移动到不同阶段时更改它的需要?用于开发的 IE 将是http://localfoo.com,对于测试它将是http://testserver.com等。

4

2 回答 2

10

您可以使用 Maven 的资源过滤来在构建时用值替换属性,例如,通过使用不同的 Maven 配置文件来设置属性值。

另一方面,您可以使用 servlet 参数并将它们移动到上下文配置中,因此您的 web.xml 引用它们并且它们实际上是在部署 .war 文件的应用程序服务器中配置的。这样,应用服务器管理员只需在服务器级别进行配置,就可以为每个环境重用相同的 war 文件。

例如,在Tomcat中,您可以在 context.xml 文件中设置值:

<Context>
  ...
  <Parameter name="targetURL" value="http://testserver.com"
     override="true"/>
  ...
</Context>
于 2012-06-21T20:01:34.277 回答
0

maven-replacer-plugin是我们在项目中用于在构建期间执行此类文本、模式和版本替换的工具。

于 2012-06-22T04:43:32.110 回答