これは私が達成しようとしていることです:
プロパティが設定されている場合は、antcalltargetを呼び出します。これは実行可能ですか?誰か教えてもらえますか?
<condition>
<isset property="some.property">
<antcall target="do.something">
</isset>
</condition>
これは私が達成しようとしていることです:
プロパティが設定されている場合は、antcalltargetを呼び出します。これは実行可能ですか?誰か教えてもらえますか?
<condition>
<isset property="some.property">
<antcall target="do.something">
</isset>
</condition>
このようなものが動作するはずです:
<if>
<isset property="some.property"/>
<then>
<antcall target="do.something"/>
</then>
</if>
if then 条件にはant-contribが必要ですが、ant で役立つものはほぼ何でも必要です。
私はこれに本当に遅れていることを知っていますが、ネストされた 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 はスキップされます。
条件の詳細については、ドキュメントを参照してください。
これらの目的で groovy を呼び出すことも検討してください。
<use-groovy/>
<groovy>
if (Boolean.valueOf(properties["some.property"])) {
ant.project.executeTarget("do.something")
}
</groovy>