Как сохранить пробелы в конфигурации плагина Maven? - PullRequest
7 голосов
/ 12 сентября 2011

У меня есть параметр конфигурации плагина с именем suffix. Я бы хотел, чтобы пользователь мог указать новую строку (буквальный символ, создаваемый нажатием клавиши Return, а не какой-либо экранированный вариант, хотя я вернусь к этому) в качестве значения этого параметра.

В то же время параметр имеет настройку default-value. Я хотел бы продолжать использовать это.

Как мне указать в разделе конфигурации моего плагина, что параметр suffix должен принимать новую строку?

Я пробовал это:

<suffix><![CDATA[
]]></suffix>

... и это:

<suffix>${line.separator}</suffix>

... (который фактически заменяет правильный символ, но XML разбирает его) и это:

<suffix><[!CDATA[${line.separator}]]></suffix>

... и это:

<suffix>&x0d;</suffix>

... и это:

<suffix xml:space="preserve">
</suffix>

... все безрезультатно. В частности, вместо этого я вижу значение параметра по умолчанию.

Редактировать : Интересно, что пробелы съедаются задолго до того, как внутренности Maven когда-либо получат возможность воздействовать на значение. mvn help:effective-pom покажет, что пробел был удален. Начальный, конечный и «только» пробельный контент удаляется на ранней стадии на этапе анализа.

Скорее всего, это ошибка, поэтому я подал http://jira.codehaus.org/browse/PLX-461, чтобы отследить ее.

Ответы [ 3 ]

2 голосов
/ 19 июня 2015

Ссылки codehaus больше не работают, но я обнаружил в документации maven, что начиная с версии 3.0 можно добавить атрибут xml: space = "preserve" к любому элементу, который вы не хотите обрезать.

1 голос
/ 23 апреля 2012

В соответствии с инструкциями, я отвечаю на этот вопрос, отсылая людей к следующей JIRA: https://issues.apache.org/jira/browse/MNG-5380 (первоначально на http://jira.codehaus.org/browse/PLX-461).

0 голосов
/ 22 апреля 2012

Используйте $${line.separator}. Двойной $$ избежать этого. Парень на IRC-канале Codehaus недавно поделился своим выводом, поэтому на самом деле ему следует отдать должное.

...