【问题标题】:Problem iterating values from a property file in ant?从ant中的属性文件迭代值有问题吗?
【发布时间】:2011-08-11 20:43:04
【问题描述】:

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

任何指针将不胜感激。

  • 谢谢

【问题讨论】:

  • 发现问题,添加delimiter="${line.separator}解决了
  • 您将解决方案编辑到问题中,因此不再有意义。在列表中,这看起来像是一个悬而未决的问题。为什么不放回原来的代码,然后在下面添加一个答案,然后接受呢?
  • @martin Clayton .. 感谢您的指点,我已做出更改并将问题标记为已回答

标签: ant ant-contrib


【解决方案1】:

发现问题,添加delimiter="${line.separator}解决了

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

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

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 2016-09-08
    • 2011-03-22
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2011-03-04
    • 2017-07-20
    • 2011-05-09
    相关资源
    最近更新 更多