b.ant
内部で使用する共有 ant スクリプトがありますantcall
。クライアント スクリプトが使用するプロパティを計算します。include
意図しないターゲットの上書きを避けるためにクライアント スクリプトの代わりに使用import
しますが、これにより antcall で問題が発生します。
include
ですべてのターゲットを使用する場合b
はプレフィックスであり、それに応じてdepends
属性b
が更新されます。ただし、これは には当てはまりませんantcall
。これを処理する方法はありますか。つまり、antcall
常に「ローカル」の ant ターゲットを呼び出すようにする方法はありますか?
を使用してこれを回避できimport
ますが、すべての上書きの問題が発生します。depends
antcall の代わりに使用することはできません。
サンプルファイル
私は2つのファイルを持っています:
アリ
<project>
<include file="b.ant" as="b" />
<target name="test-depends" depends="b.depend">
<echo>${calculated-property}</echo>
</target>
<target name="test-call" depends="b.call">
<echo>${calculated-property}</echo>
</target>
</project>
b.ant
<project>
<target name="depend" depends="some-target">
<property name="calculated-property" value="Hello World"/>
</target>
<target name="call">
<antcall target="some-target" inheritrefs="true"/>
<property name="calculated-property" value="Hello World"/>
</target>
<target name="some-target"/>
</project>
出力例
呼び出しtest-depend
は期待どおりにtest-call
機能しますが、次の出力で失敗します。
b.call:
BUILD FAILED
D:\ws\rambo2\ws-dobshl\ant-test\b.ant:6: The following error occurred while executing this line:
Target "some-target" does not exist in the project "null".
Total time: 258 milliseconds