Продолжая мой предыдущий вопрос (Maven: как заполнить переменную в файле web.xml), я понял, что значения, записанные в web.xml
, не передаются развернутому web.xml
. Позвольте мне показать, что происходит: я запускаю веб-приложение в Tomcat через WTP Eclipse. В 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"));
}
Благодаря подсказке Фреда Брикона я смог заставить Maven правильно заполнить переменную ambiente.producao
в web.xml
, скопированную в каталог target
.
Однако, когда я запускаю Tomcat и печатаю параметр инициализации producao, отображается ${ambiente.producao}
. На самом деле, когда я открываю web.xml
в каталоге [WORKSPACE_DIR]/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sinpo-web/WEB-INF
, producao
не заполняется так, как должно быть. Это было похоже на то, что Eclipse (или WTP, или Maven) выбрал исходный файл вместо заполненного файла.
Поэтому я спрашиваю, нужна ли какая-то недостающая конфигурация для публикации Maven (или Eclipse) с использованием файлов в каталоге target
вместо исходного файла.
Спасибо,
Рафаэль Афонсу