1

继续我之前的问题(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.xmltarget

但是,当我启动 Tomcat 并打印 producao init 参数时,它会显示${ambiente.producao}。实际上,当我web.xml在目录中打开礼物时[WORKSPACE_DIR]/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sinpo-web/WEB-INFproducao并没有按应有的方式填充。就像 Eclipse(或 WTP 或 Maven)选择了原始文件而不是填充文件。

target因此,我问是否需要使用目录中的文件而不是原始文件来发布 Maven(或 Eclipse)所需的一些配置。

谢谢,

拉斐尔·阿方索

4

0 回答 0