Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ApacheAnt:尝试使用嵌套for循环将列表映射到参数。我到底应该做什么?_Ant - Fatal编程技术网

ApacheAnt:尝试使用嵌套for循环将列表映射到参数。我到底应该做什么?

ApacheAnt:尝试使用嵌套for循环将列表映射到参数。我到底应该做什么?,ant,Ant,所以,我有一个${locales}和${externs}的列表,我正在尝试这样做。它不起作用了。Ant说java不支持嵌套的“for”元素。我怀疑我的方法是错误的。我该怎么做呢 <for list="${locales}" param="locale"> <sequential> <java jar="whatever.jar" fork="true"> <for list="${externs}" param="extern-f

所以,我有一个${locales}和${externs}的列表,我正在尝试这样做。它不起作用了。Ant说
java不支持嵌套的“for”元素。
我怀疑我的方法是错误的。我该怎么做呢

<for list="${locales}" param="locale">
  <sequential>
    <java jar="whatever.jar" fork="true">
      <for list="${externs}" param="extern-file">
        <arg line='-f "--externs=${extern_dir}/@{extern-file}"' />
      </for>
      <arg line="... more stuff" />
    </java>
  </sequential>
</for>


<代码> > P>这里有一些你可以考虑的备选方案。

  • 实现一个定制的Ant任务来完成您需要的任务

  • 如果您拥有正在调用的Java代码,请对其进行更新,使其更符合您的需求,例如:

    2.1。正在传递区域设置和外部设置的列表

    2.2。接受文件输入或标准输入(都可以从Ant写入)

  • 如果您没有Java代码,请实现您自己的脚本或Java代码,以提供一个适配器,该适配器可以轻松地从Ant传递到目标所需的参数


  • 这里有一些你可以考虑的备选方案。

  • 实现一个定制的Ant任务来完成您需要的任务

  • 如果您拥有正在调用的Java代码,请对其进行更新,使其更符合您的需求,例如:

    2.1。正在传递区域设置和外部设置的列表

    2.2。接受文件输入或标准输入(都可以从Ant写入)

  • 如果您没有Java代码,请实现您自己的脚本或Java代码,以提供一个适配器,该适配器可以轻松地从Ant传递到目标所需的参数

  • Ant支持前缀和后缀,这可能会解决这个问题

    如果
    ${externs}
    是逗号分隔的列表,则需要使用ant contrib将其分隔为空格

    概述:

    <propertyregex property="externs.arg"
                   input="${externs}"
                   regexp="," replace=" " />
    
    <for list="${locales}" param="locale">
      <sequential>
        <java jar="whatever.jar" fork="true">
          <arg line="${externs.arg}"
               prefix='-f "--externs=${extern_dir}/'
               suffix='"' />
          <arg line="... more stuff" />
        </java>
      </sequential>
    </for>
    
    
    
    Ant支持前缀和后缀,这可能会解决这个问题

    如果
    ${externs}
    是逗号分隔的列表,则需要使用ant contrib将其分隔为空格

    概述:

    <propertyregex property="externs.arg"
                   input="${externs}"
                   regexp="," replace=" " />
    
    <for list="${locales}" param="locale">
      <sequential>
        <java jar="whatever.jar" fork="true">
          <arg line="${externs.arg}"
               prefix='-f "--externs=${extern_dir}/'
               suffix='"' />
          <arg line="... more stuff" />
        </java>
      </sequential>
    </for>
    
    
    
    您是要为每个外部文件运行一次whater.jar,还是为每个具有多个-f--externs=[file]参数的语言环境运行一次?后者。(注释长度必须至少为15个字符)您是要为每个外部文件运行一次whater.jar,还是为每个具有多个-f--externs=[file]参数的区域设置运行一次?后者。(注释长度必须至少为15个字符)前缀是Ant 1.8中的一项新功能,否。。。(停留在1.7版本,除非我花半天时间调试为什么构建会在v1.8版本下中断。也不是一个假设)@fennec-是的,它们是从1.8版本开始的。我确实用pathconvert任务整理了一个答案,但我删除了它!等我有时间再发。基本思想是,在for循环之前,使用pathconvert任务生成arg行。。。(停留在1.7版本,除非我花半天时间调试为什么构建会在v1.8版本下中断。也不是一个假设)@fennec-是的,它们是从1.8版本开始的。我确实用pathconvert任务整理了一个答案,但我删除了它!等我有时间再发。基本思想是,在for循环之前,使用pathconvert任务生成arg行。