继续我之前的问题(Maven:如何在 web.xml 文件中填充变量),我意识到写入的值web.xml
不会传递给已部署的.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 参数时,它会显示${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)所需的一些配置。
谢谢,
拉斐尔·阿方索