我想知道哪种方法是将文件内容读入逗号分隔属性的最简单方法,该属性适合作为files
filelist
属性的参数。我有两个解决方案,但我对其中任何一个都不满意,我想问一下是否有人知道更好(更短)的方式。
这只适用于较新的Ants,它似乎不值得信任,因为输入文件的每一行都以basedir
为前缀,这使得必须调用flattenmapper
来删除目录试。
<pathconvert property="files2" pathsep=",">
<resources>
<resourcelist>
<file file="IMPORT"/>
</resourcelist>
</resources>
<flattenmapper/>
</pathconvert>
在这个例子中有人知道如何避免flattenmapper
吗?我尝试在basedir
中指定file
属性,但它没有效果。
另一种方法是loadfile
,filterchain
:
<loadfile property="files1" srcFile="IMPORT">
<filterchain>
<tokenfilter>
<replaceregex pattern="$" replace=","/>
</tokenfilter>
<striplinebreaks/>
<tokenfilter>
<replaceregex pattern=",$" replace=""/>
</tokenfilter>
</filterchain>
</loadfile>
这对我来说似乎更好,因为它也适用于较老的蚂蚁,但输入更多。
有更短的路吗?
答案 0 :(得分:1)
在导入文件中使用相对路径时,flattenmapper的替代方法是使用&lt; mappedresources&gt;如:
<pathconvert property="files2" pathsep=",">
<resources>
<mappedresources>
<resourcelist>
<file file="IMPORT"/>
</resourcelist>
<globmapper from="*" to="${my.base.dir}/*"/>
</mappedresources>
</resources>
<flattenmapper/>
</pathconvert>