继续我先前的问题(Maven: how to fill a variable in web.xml file),我意识到用web.xml
写的值不会传递给已部署的web.xml
。
让我展示一下发生了什么:我通过WTP Eclipse在Tomcat中运行Web应用程序。在web.xml
中,我有context-param
:
<context-param>
<param-name>producao</param-name>
<param-value>${ambiente.producao}</param-value>
</context-param>
ambiente.producao
根据选择的Maven个人资料填写:
<profiles>
<profile>
<id>prod</id>
<properties>
<ambiente.producao>true</ambiente.producao>
</properties>
</profile>
<profile>
<id>desenv</id>
<properties>
<ambiente.producao>false</ambiente.producao>
</properties>
</profile>
</profiles>
另外,我有一个ServletContextListener
实现,它将打印producao
参数的值:
public void contextInitialized(ServletContextEvent event) {
logger.warn(event.getServletContext().getInitParameter("producao"));
}
感谢Fred Bricon提示,我能够正确填充Maven,将ambiente.producao
中的web.xml
变量复制到target
目录中。
然而,当我启动Tomcat并打印producao init param时,显示${ambiente.producao}
。实际上,当我打开目录web.xml
中的[WORKSPACE_DIR]/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sinpo-web/WEB-INF
时,producao
未按原样填充。就像Eclipse(或WTP或Maven)选择了原始文件而不是填充文件。
因此,我问是否需要使用target
目录中的文件而不是原始文件来发布Maven(或Eclipse)所需的一些配置。
谢谢,
Rafael Afonso