私はこれに大いに腹を立てています。シナリオは次のとおりです。
- 一連のswcsを構築して出力するantタスクがあります
- Ant タスクは、「libs」フォルダー内のすべての項目を削除してから、ライブラリーがそれらを「libs」フォルダーに出力するようにコンパイルします。
- これらのライブラリに依存するコンパイルする他のモジュールがあります
問題: 別の swc に依存する swc が、ant タスクに組み込まれたばかりのバージョンではなく、古いバージョンに対してコンパイルされているという問題があります。
したがって、最初に common.swc をコンパイルし、次に mydependantswc.swc をコンパイルします。mydependantswc.swc をコンパイルすると、ビルドしたばかりの common.swc に対してコンパイルされます。common.swc がキャッシュされているようにコンパイルすると、一度ビルドされたものは無視され、古いバージョンに対してコンパイルされます。
再コンパイルする前に古い swc ライブラリを削除しないと、これがフラッシュで発生することはわかっています。ただし、私のantタスクはそれらのファイルを削除します。Mac では、手動でファインダーに入り、それらのライブラリを削除してからコンパイルすると、正常に動作することがわかりました。Ant タスクはそれを行いますが、機能しません。
アイデアはありますか?これは一般的な問題のように聞こえますか?
ここにいくつかの ant コードのスニペットがあります。非常に単純な ant だと思います。
<target name="install-libraries" description="standalone build libs">
<delete includeEmptyDirs="true">
<fileset dir="${bin.dir}/${managed.libs.dest}"/>
</delete>
<mkdir dir="${bin.dir}/${managed.libs.dest}"/>
<antcall target="compile-libraries"/>
</target>
続いて、標準の compc タスクが続きます。
ツイッターで話した後、フォルダ構造と関係があるのではないかと思います。あるライブラリーが、このフォルダー bin.dir 内の別のコンパイル済みライブラリーに依存していることがわかります。これは、私がビルドしているフォルダーでもあります。理由はわかりませんが、においがします!