java - Ant - 迭代文件夹以获取运行参数

标签 java ant

我有一个 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>

关于java - Ant - 迭代文件夹以获取运行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8305828/

相关文章:

java - 如何确定 XML 文档中的所有命名空间

java - 当我使用@Transactional时hibernateFilter。是必然的吗?

Java:ActionListener 错误

ios - 使用 Jenkins 时的协同设计问题

ant - Sonar 测试和二进制属性,它们有什么作用?

java - 多个组的正则表达式问题

java - 如何在不使用反射的情况下查看对象是否为数组?

java - Selenium webdriver 在尝试通过 ANT 运行时抛出异常

Java小程序,将jar文件添加到manifest文件

android - 使用另一个包名称生成 android 项目副本的脚本