Я хочу отредактировать некоторую конфигурацию в моем файле web.xml на основе Jenkins Build Paraemter.
Вот моя цель сборки в Jenkins:
clean compile war:war -Dparameter=$PARAMETER
А вот мой файл web.xml:
...
<env-entry>
<env-entry-name>parameter</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>${parameter}</env-entry-value>
</env-entry>
...
Это возможно? Или я должен использовать другой способ?
Я новичок в проекте Maven.





Вы должны активировать фильтрация (фактически это интерполяция строк/переменных) в плагине Maven Resources для каждой папки ресурсов, которая содержит ресурсы для фильтрации:
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory> <!-- re-define the default since an explicit
<resources> declaration overwrites it -->
</resource>
<resource>
<directory>src/main/webapp/WEB-INF</directory> <!-- contains web.xml, for example -->
<filtering>true</filtering>
</resource>
...
</resources>
...
</build>
И, кстати, вам не нужно и не следует явно вызывать цель warПлагин Maven WAR в командной строке, поскольку:
war:waris the default goal invoked during thepackagephase for projects with a packaging type ofwar. It builds a WAR file.
т.е. mvn clean package ... достигает того же (и это предполагаемое использование Жизненный цикл сборки Maven).
@skltrbk 1) В принципе, да (если вам нужно /WEB-INF в получившейся ВОЙНЕ, это просто WebContent). 2) Во время сборки Maven пропускаются все фазы до данной фазы включительно. Итак, compile (среди прочего) передается перед package неявно.
1) Я пробовал ваше решение, но оно не работает. Мое решение — добавить <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> в maven-war-plugin, а затем добавить тег <parameter> внутрь <properties> в pom.xml. 2) Понятно, спасибо за пояснение
Привет, спасибо за ответ. Итак, если мой файл web.xml находится в WebContent/WEB-INF, тогда я должен изменить значение <directory> на WebContent/WEB-INF, верно? А насчет цели, разве я не должен сначала скомпилировать его перед упаковкой?