1

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

4

2 に答える 2

3

他のターゲットを実行するには、 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>
于 2012-08-23T16:44:25.540 に答える
0

マクロを使用すると、同じことをスマートに行うことができます。ターゲットの 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>
于 2012-08-28T10:14:45.587 に答える