从ant中的属性文件迭代值时出现问题?

时间:2011-08-11 20:43:04

标签: ant ant-contrib

我在尝试迭代属性文件中定义的值时遇到问题。我正在尝试在循环中读取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。

任何指针都将受到赞赏。

  • 感谢

1 个答案:

答案 0 :(得分:4)

发现问题,添加 delimiter =“$ {line.separator }已解决此问题

在for循环中,我需要为行分隔符添加分隔符

<for list="${file.list}" param="fileName" delimiter="${line.separator}">