Maven 2 如何在Maven插件配置中保留空白?

Maven 2 如何在Maven插件配置中保留空白?,maven-2,maven,maven-3,Maven 2,Maven,Maven 3,我有一个名为后缀的插件配置参数。我希望用户能够指定一个换行符(通过按Return键生成的文字字符,而不是一些转义的变量,尽管我会这样做)作为该参数的值 同时,该参数具有默认值设置。我想继续使用它 我如何在插件的配置节中指定后缀参数应该换行 我试过这个: <suffix><![CDATA[ ]]></suffix> …这是: <suffix>${line.separator}</suffix> <suffix><

我有一个名为
后缀的插件配置参数
。我希望用户能够指定一个换行符(通过按
Return
键生成的文字字符,而不是一些转义的变量,尽管我会这样做)作为该参数的值

同时,该参数具有
默认值
设置。我想继续使用它

我如何在插件的配置节中指定
后缀
参数应该换行

我试过这个:

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

…这是:

<suffix>${line.separator}</suffix>
<suffix><[!CDATA[${line.separator}]]></suffix>
<suffix>&x0d;</suffix>
<suffix xml:space="preserve">
</suffix>
${line.separator}
…(该字符实际上替换了中的正确字符,但XML解析会在其上跺脚),并且:

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

…这是:

<suffix>${line.separator}</suffix>
<suffix><[!CDATA[${line.separator}]]></suffix>
<suffix>&x0d;</suffix>
<suffix xml:space="preserve">
</suffix>
&x0d;
…这是:

<suffix>${line.separator}</suffix>
<suffix><[!CDATA[${line.separator}]]></suffix>
<suffix>&x0d;</suffix>
<suffix xml:space="preserve">
</suffix>

……都没有用。具体来说,我看到的是参数的默认值

编辑:有趣的是,早在Maven的内部成员有机会处理值之前,空白就被吃掉了<代码>mvn帮助:有效的pom将显示空白已被删除。在解析阶段的早期,删除前导、尾随和“仅”空白内容


在我看来,这很可能是一个bug,所以我已经归档来跟踪它。

使用
$${line.separator}
。双精度
$$
将其转义。Codehaus IRC频道上的一个家伙最近分享了他的发现,因此实际上应该归功于他。

根据说明,我通过以下JIRA来回答这个问题:(最初位于)。

Codehaus链接不再起作用,但我在maven文档中发现,从3.0版开始,您可以向任何不希望修剪的元素添加属性xml:space=“preserve”。

让我们关注一下
${line.separator}
。你是说标记替换发生在XML解析之前吗?不,我是说Maven解析
pom.XML
的行为会导致前导和尾随空格被修剪。您只需执行
mvn帮助:有效pom
即可看到这一点。继续为任何插件指定一个配置值,并用前导和尾随空格将该值括起来,然后执行
mvn help:effective pom
。你会注意到空间被破坏了。Maven属性插值与此无关(我发现)。您可以将您创建的JIRA项目发布为您自己问题的答案,并接受您自己的答案作为正确答案。这样就可以解决这个问题。