Я работаю в веб-проекте Maven через Eclipse. В web.xml
у меня есть параметр-параметр, значение которого должно меняться в соответствии с профилем, который я использую при запуске Maven.Maven: как заполнить переменную в файле web.xml
<context-param>
<param-name>producao</param-name>
<param-value>${ambiente.producao}</param-value>
</context-param>
В файле проекта для пом я имею следующую конфигурацию:
<project>
<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>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/webapp/WEB-INF/</directory>
<filtering>true</filtering>
<includes>
<include>**/web.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.5</version>
<configuration>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>**/web.xml</include>
</includes>
</resource>
</webResources>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
Я использую как resources
тег в Maven-плагин войны-плагин по ссылкам, которые я нашел в Интернете. Однако это не сработало, как ожидалось. В Eclipse я запускаю maven с целями чистой установкой и как «Профили» либо prod или desenv. После запуска Maven я заметил, что в web.xml
свойство ${ambiente.producao}
не заменяется. Поэтому я хотел бы знать, что я сделал неправильно. Должен ли я использовать только ресурс фильтрации или плагин maven-war?
Спасибо,
Рафаэль Афонсу
Это очень оптимальный и рациональный подход и объяснение. Благодаря! –
Это был волшебный ключ: "filteringDeploymentDescriptors> true filteringDeploymentDescriptors>" –