【问题标题】:Ant - iterate on a folder to get run argumentsAnt - 迭代文件夹以获取运行参数
【发布时间】:2023-04-05 17:36:02
【问题描述】:

我有一个 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 个案例的时间?

谢谢。

【问题讨论】:

    标签: java ant


    【解决方案1】:

    我使用&lt;apply&gt; 标签 (doc) 找到了我的解决方案。

    我的脚本现在看起来像这样,由于&lt;redirector&gt; 标签,每次执行都在单独的文件中输出:

    <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>
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2021-12-24
      • 2020-07-14
      相关资源
      最近更新 更多