蚂蚁迭代一个文件夹以获得运行参数



我有一个ant脚本来编译我的程序,构建jar然后运行它。我的程序接受一个文件参数。

在我的运行目标中,我希望能够执行我的jar与指定文件夹中的所有文件,一个接一个,作为参数。

我是否必须手写所有不同的大小写,如:

<target name="run" depends="jar">
     <mkdir dir="${output.dir}" />
     <java jar="${myjar}.jar" output="${output.dir}/${test1}" fork="true">
          <arg value="${test.dir}/${test1}" />
     </java>
     <java jar="${myjar}.jar" output="${output.dir}/${test2}" fork="true">
          <arg value="${test.dir}/${test2}" />
     </java>
     #and so on
</target>
或者是否有一种方法可以让在我的测试目录中迭代,从而节省我编写20个其他案例的时间?

谢谢。

我找到了使用<apply>标签(doc)的解决方案。

我的脚本现在看起来像这样,由于<redirector>标记,每次执行都输出在单独的文件中:

<target name="run" depends="jar">
    <mkdir dir="${output.dir}" />
    <apply executable="java">
         <fileset dir="${test.dir}" />
         <arg value="-jar"/>
         <arg path="${jar.dir}/${myjar}.jar" />
         <srcfile />
         <redirector>
              <outputmapper id="out" type="glob" from="*" to="${output.dir}/*" />
         </redirector>
    </apply>
</target>

ant-contrib中的foreach标签可以满足您的要求。给它一个文件集,并把它指向运行jar的目标。

相关内容

  • 没有找到相关文章