Переопределите значение фильтра Maven с помощью переменной среды или параметра командной строки - PullRequest
0 голосов
/ 08 июня 2018

Мы используем Maven для создания наших Java-проектов с различными профилями (тестирование, подготовка, производство и т. Д.).Каждый профиль имеет свой собственный фильтр, объявленный как:

<filters>
    <filter>src/main/filters/filter-${env}.properties</filter>
</filters>

(с $ {env} в качестве имени профиля).Каждый фильтр содержит значения, специфичные для целевой среды (в основном это параметры конфигурации).

Он прекрасно работал в течение многих лет.Но иногда мы хотели бы переопределить одно из значений в этом файле фильтра .properties, не изменяя сам файл .

Почему?Потому что это происходит очень поздно в процессе.Мы уже пометили версию в SCM, тщательно протестировали ее в средах тестирования / промежуточного хранения, установили связь с этим номером версии и обнаруживаем неправильное значение параметра в производственном фильтре при установке в производство.Уже слишком поздно для создания нового тега и повторного тестирования, только для параметра конфигурации.

Я хотел бы найти способ переопределить значение во время выполнения Maven: либо с помощью переменной среды, либо путем передачи некоторогопараметры в командной строке Maven.

Я полагаю, это могло бы быть возможно путем расширения самого плагина maven-resources-plugin, но мог бы быть более простой способ?

NB: наша сборка негенерировать только войну, но полный пакет, включая его конфигурацию.

Техническая среда: Maven 3.3.9, запущенная заданием Jenkins

1 Ответ

0 голосов
/ 11 июня 2018

при выполнении команды maven вы можете переопределить ваше свойство, указав его в качестве системного свойства.

подобно mvn install "-Dthe.property=the overriden value"

обратите внимание, что «необходимо только в том случае, если значение содержит пробелы.

...