ビルド スクリプトがあり、そのスクリプトの一部として、jar ファイルをディレクトリにコピーします。簡単に言うと、utils jar と呼びます。utils jar は、別のディレクトリにある別のビルド スクリプトによってビルドされます。ビルドスクリプトでutilsビルドスクリプトを実行して、utils jarが最新であることを確認できるようにしようとしています。
したがって、utils ビルド ファイルをインポートする必要があることはわかっています。
<import file="../utils/build/build.xml" />
import タスクは、他のほとんどすべての ant taks とは異なり、basedir から実行されず、pwd から実行されるため、これは機能しません。それで、ビルドファイルを正常にインポートするこの小さな問題を回避するために
<property name="baseDirUpOne" location=".." />
<import file="${baseDirUpOne}/utils/build/build.xml" />
インポートの問題を解決したので、タスクを呼び出す必要があります。これは簡単なはずです。
<antcall target="utils.package" />
上記で、utils は ../utils/build/build.xml のプロジェクト名であることに注意してください
私が今直面している問題は、ant 呼び出しが ../utils/build で実行されないことです。そのため、本質的に、runat プロパティまたは同様のものが必要であり、見つけることができません。
<antcall target="utils.package" runat="../utils/build" />
これが必要な理由は、utils ビルド ファイルで、どのコードを jar にコピーするかを選択するステップが相対パスに基づいており、ant ファイルでパスをハードコーディングするのを避けるためです。何か案は?