9

これは私が達成しようとしていることです:

プロパティが設定されている場合は、antcalltargetを呼び出します。これは実行可能ですか?誰か教えてもらえますか?

<condition>
    <isset property="some.property">
        <antcall target="do.something">
    </isset>
</condition>
4

3 に答える 3

8

このようなものが動作するはずです:

<if>
    <isset property="some.property"/>
    <then>
        <antcall target="do.something"/>
    </then>
</if>

if then 条件にはant-contribが必要ですが、ant で役立つものはほぼ何でも必要です。

于 2012-06-27T17:45:01.623 に答える
6

私はこれに本当に遅れていることを知っていますが、ネストされた antcall 要素をサポートしていない ant-contrib を使用している場合、これを行う別の方法があります (私は antcontrib 1.02b を使用していますが、これはサポートしていません)。

<target name="TaskUnderRightCondition" if="some.property">
  ...
</target>

これをさらに展開して、if 属性が評価される前に depends が実行されるため、depends を使用してこのターゲットが呼び出される直前に some.property を設定する必要があるかどうかを確認できます。したがって、これを持つことができます:

<target name="TestSomeValue">
  <condition property="some.property">
    <equals arg1="${someval}" arg2="${someOtherVal}" />
  </condition>
</target>

<target name="TaskUnderRightCondition" if="some.property" depends="TestSomeValue">
  ...
</target>

この場合、TestSomeValue が呼び出され、someval == someOtherVal の場合、some.property が設定され、最後に TaskUnderRightCondition が実行されます。someval != someOtherVal の場合、TaskUnderRightCondition はスキップされます。

条件の詳細については、ドキュメントを参照してください。

于 2013-12-10T22:28:51.403 に答える
-1

これらの目的で groovy を呼び出すことも検討してください。

<use-groovy/>
<groovy>
   if (Boolean.valueOf(properties["some.property"])) {
     ant.project.executeTarget("do.something")
   }
</groovy>
于 2013-05-14T16:07:06.573 に答える