【问题标题】:How to write conditional logic using ant-contrib如何使用 ant-contrib 编写条件逻辑
【发布时间】:2012-08-23 13:45:24
【问题描述】:

我是 ANT 的初学者。

我做错了什么? ant-contrib-1.0b3 ,可用。我想调用默认目标如下:

<target name="build">
<if>
 <equals arg1="${config.name}" arg2="foo" />
 <then>
   <depends="get-all-war,..." />
 </then>
 <elseif>
 <equals arg1="${config.name}" arg2="mark" />
 <then>
   <depends="zip-wars, ..." />
 </then>
 </elseif>
 <else>
    <depends="get-all-war, zip-wars, docs, deleteAll" />
 </else>
</if>

【问题讨论】:

  • @HashMaper:你有答案了。请回来,接受答案,如果你愿意,请投票。

标签: ant if-statement depends


【解决方案1】:

您需要使用antcall 来执行其他目标。

<target name="build">
<if>
 <equals arg1="${config.name}" arg2="foo" />
 <then>
   <antcall target="get-all-war" />
   <antcall target="..." />
 </then>
 <elseif>
 <equals arg1="${config.name}" arg2="mark" />
 <then>
   <antcall target="zip-wars" />
   <antcall target="..." />
 </then>
 </elseif>
 <else>
   <antcall target="get-all-war" />
   <antcall target="zip-wars" />
   <antcall target="docs" />
   <antcall target="deleteAll" />
 </else>
</if>

【讨论】:

    【解决方案2】:

    您可以使用宏巧妙地做同样的事情。如果您的目标 get-all-war、zip-wars、docs、deleteAll 需要更多时间,您可以像这样并行运行它们:

    <target name="build">
      <if>
      <equals arg1="${config.name}" arg2="foo" />
      <then>
        <mGetAllWar/>
      </then>
      <elseif>
      <equals arg1="${config.name}" arg2="mark" />
      <then>
        <mZipWars />
      </then>
      </elseif>
      <else>
        <mRestAllTargets/>
      </else>
    </if>
    
    <mGetAllWar>
      <parallel>
        <antcall name="target1">
        <antcall name="target2">
        ... 
      </parallel>
    </mGetAllWar>
    
    <mZipWars >
      <parallel>
        <antcall name="target1">
        <antcall name="target2">
        ... 
      </parallel>
    </mZipWars >
    
    <mRestAllTargets>
      <parallel>
        <antcall name="target1">
        <antcall name="target2">
        ... 
      </parallel>
    </mRestAllTargets>
    

    【讨论】:

      猜你喜欢
      • 2019-04-13
      • 2016-11-02
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      相关资源
      最近更新 更多