1

我需要从文件中加载属性并通过以下方式更改字符串:

prop1=value1
prop2=value2

prop3=value3

进入 :

-Pprop1=value1 -Pprop2=value2 -Pprop3=value3

(基本上我想在每行的开头添加 -P 并删除换行符)

我使用tokenfilter了以下方式:

<loadfile property="temp.properties" srcFile="${properties.file}">
    <filterchain>
        <tokenfilter delimoutput=" -P">
            <ignoreblank />
        </tokenfilter>
    </filterchain>
</loadfile>

这种方法的问题是,如果文件以空的新行结尾,我会得到以下字符串:

prop1=value1 -Pprop2=value2 -Pprop3=value3 -P
  1. 我没有得到-P第一个属性(与文件末尾的换行符无关)。这很容易通过 Ant 解决,只需将-P字符串与结果字符串连接即可
  2. 我需要克服的一个问题是最后的-P。有人有解决此问题的建议吗?

此外,一个很好的补充是忽略属性注释 - 以开头的行,#但如果它使事情变得过于复杂,那就不重要了。

谢谢

4

1 回答 1

3

以下内容对您有用吗?

<filterchain>
  <replaceregex pattern="^[#].*" replace="" />
  <ignoreblank />
  <prefixlines prefix=" -P" />
  <striplinebreaks />
</filterchain>
于 2013-04-11T10:07:55.963 回答