java - 遍历文件集时出现问题

标签 java ant ant-contrib

我尝试迭代 wsdl 的目录。首先,我很乐意获得每个文件的输出。

<target name="messages">
    <foreach target="wsdlList" param="wsdlfile">
        <path>
            <fileset dir="${base.wsdl.src}">
                <include name="*.wsdl" />
            </fileset>
        </path>
    </foreach>
</target>

<target name="wsdlList">
    <echo message="${wsdlfile}" />
</target>

我得到的输出是 wsdlList: [echo] ${wsdlfile} 而不是我期望的所有 wsdl 文件。

最佳答案

而不是使用 <foreach> ,使用较新的 <for>任务。您需要指向antlib.xml而不是antcontrib.properties<taskdef> :

<taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
        <fileset dir="${ivy.dir}/antcontrib">
            <include name="ant-contrib*.jar"/>
        </fileset>
    </classpath>
</taskdef>

现在,您可以执行以下操作:

<target name="messages">
    <for param="wsdl.file">
        <fileset dir="${base.wsdl.src}">
            <include name="*.wsdl" />
        </fileset>
        <sequential>
            <echo message="@{wsdl.file}" />  <!-- Note "@" and not "$" -->
        </sequential>
    </for>
</target>

请注意,这是 @{wsdl.file}而不是${wsdl.file} 。该参数每次都可以具有不同的值。

关于java - 遍历文件集时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27402734/

相关文章:

java - 如何继承组件?

java.lang.UnsatisfiedLinkError : No implementation found? 错误

java - liferay 未上传用户个人资料图片

java - 我可以要求 ANT 查看 .classpath 中的外部 jar 吗?

java - 在 Git 中使用 Eclipse .classpath 和项目文件?

foreach 中的 antcall 没有执行循环

java - 无法使用外部库编译 Spring Boot 应用程序

ant - Ant 属性文件中的条件属性

java - 从属性文件创建 Ant 本地属性

java - ant-contrib 发布任务不起作用