我在尝试迭代属性文件中定义的值时遇到问题。我正在尝试在循环中读取jar文件并将它们复制到目录中。 jar文件名在属性文件中定义。这是我的示例文件:
<?xml version="1.0"?><project name="beehive" basedir=".">
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<loadfile property="file.list" srcFile="test.txt">
<!--<filterchain>
<striplinebreaks/>
</filterchain>-->
</loadfile>
<target name="testtarget">
<for list="${file.list}" param="fileName">
<sequential>
<echo>@{fileName}</echo>
<copy file="C:/Development/Doc/Build/@{fileName}" todir="C:/Development/Doc/Build/testdir">
</copy>
</sequential>
</for>
</target>
这是test.txt中的条目。
wikihelp-1.0.0.jar
速度-1.0.0.jar
我希望for循环一次读取一个文件名,然后执行复制。相反,它一起读取2个文件名并抛出以下异常:
警告:无法找到要复制的文件C:\ Development \ Doc \ Build \ wikihelp-1.0.0.jar velocity-1.0.0.jar。
任何指针都将受到赞赏。
答案 0 :(得分:4)
发现问题,添加 delimiter =“$ {line.separator }已解决此问题
在for循环中,我需要为行分隔符添加分隔符
<for list="${file.list}" param="fileName" delimiter="${line.separator}">