Плагин ресурсов Maven не отфильтровывает настраиваемые разделители, вложенные в $ {} - PullRequest
1 голос
/ 18 марта 2019

У меня есть файл свойств:

property.a=$[value]

Я использую maven-resources-plugin с включенной фильтрацией для этого файла свойств, чтобы подставить туда переменные сборки:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <delimiters>
            <delimiter>$[*]</delimiter>
        </delimiters>
    </configuration>
</plugin>

Все работает без нареканий, пока $[*] токен не будет вложен в ${*}, как показано ниже:

property.a=${VALUE:$[value]}

Предполагая value=XXX в свойствах Maven, я ожидал получить:

property.a=${VALUE:XXX}

Однако плагин ресурсов Maven не заменяет $[value], оставляя отфильтрованные контексты как есть. Я попытался включить supportMultiLineFiltering, но ничего не изменилось. Такое ощущение, что, несмотря на то, что опция <delimiters> установлена ​​явно, плагин также обрабатывает ${*} как допустимый разделитель и пытается отфильтровать его, но безуспешно.

Как настроить плагин maven resources, чтобы он фильтровал содержимое файла свойств, как ожидалось?

1 Ответ

1 голос
/ 18 марта 2019

Я только что понял, что пропустил опцию конфигурации в плагине ресурсов maven, разработанном специально для управления разделителями по умолчанию - useDefaultDelimiters, что по умолчанию верно.Приведенная ниже конфигурация решила проблему:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <delimiters>
            <delimiter>$[*]</delimiter>
        </delimiters>
        <useDefaultDelimiters>false</useDefaultDelimiters>
    </configuration>
</plugin>
...