【发布时间】:2011-11-15 10:36:22
【问题描述】:
我有一个名为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 来跟踪它。
【问题讨论】:
-
让我们稍微关注一下
<suffix>${line.separator}</suffix>。你是说令牌替换发生在 XML 解析之前? -
不,我是说 Maven 解析
pom.xml的行为会导致前导和尾随空格被修剪。您只需执行mvn help:effective-pom即可看到这一点。继续为任何插件指定一个配置值,并用前导和尾随空格包围该值,然后执行mvn help:effective-pom。你会注意到空间被破坏了。 Maven 属性插值与此无关(我发现)。 -
您可以发布您创建的 JIRA 项目作为您自己问题的答案,并接受您自己的答案作为正确答案。这样这个问题就可以解决了。