4

Ant と mxmlc を使用して ActionScript クラスと MXML を swfs にコンパイルしながら、Flex Builder (Flash Builder) プロジェクトのデフォルトの編成を維持しています。私の ActionScript クラスの多くはプロジェクトのサブディレクトリにあるため、私のプロジェクトは次のように編成されています。

MyBigProject
-build-imports.xml
-build.xml

-bin-debug
--src
---flash
---app
----CoolWidget1.swf
---Main.swf
--test

-src
--flash
---app
----build-imports.xml
----build.xml
----CoolWidget1.as
--build-imports.xml
--build.xml
--Main.mxml
-test

このディレクトリ構造は、Flash Builder プロジェクトのデフォルトのディレクトリ構造を維持しているため、Flash Builder IDE からプッシュボタンでビルドを実行できます。Ant ビルド xml をこのプロジェクトに追加したので、コマンド ラインからもビルドできます。他のプロジェクトで再利用するために最小限の変更しか必要としない、移植可能な ant ビルド スクリプトを作成しようとしています。相対パスの導出を除いて、必要なものはすべて揃っています。

プロジェクトのルートにある build-imports.xml ファイルには、次のものが含まれています。

<project name="project.root.imports">
    <dirname property="project.root.dir" file="${ant.file.project.root.imports}"/>
</project>

サブプロジェクトフォルダーには、次の build-imports.xml が含まれています。

<project name="MyBigProject.src.flash.app.imports">
    <import file="../build-imports.xml" />
</project>

サブ プロジェクト build-imports.xml は、ルートの build-imports.xml に到達するまでディレクトリ階層をたどり、そこで project.root.dir を設定することに注意してください。

その後、${project.root.dir}/bin-debug を使用して、バイナリを配置する場所を指定できます。私が抱えている唯一の問題は、src フォルダーの下にあるものと同じディレクトリ構造を作成する方法がわからないことです。新しいディレクトリを作成するには、相対パスを取得するか、文字列操作を実行できる必要があります。

上記の情報を考慮して、
${project.root.dir}/src/appのような既知のパスを取得し、
次のようなディレクトリ パスを導出するにはどうすればよいですか:
${project.root.dir}/bin-debug/app

Ant-contribu propertyregex タスクに関する情報をいくつか見つけました。これにより、文字列操作が可能になりますが、簡単な解決策を指摘できる Ant の第一人者がそこにいることを願っています。私は、Ant の初心者である可能性が非常に高いと考えています。私は単に明白なことを見落としています。

4

1 に答える 1

2

投稿してからビルドファイルは少し進化しましたが、問題は解決しました。前述の基本的な設定では、次のことが正しく機能すると思います。

これをサブプロジェクトのbuild.xmlのデフォルトターゲットに追加します

<path id="build.path">
   <pathelement location="." />
</path>
<pathconvert property="build.dir" refid="build.path">
    <map from="${project.root.dir}" to="${project.root.dir}/bin-debug"/>
</pathconvert>
于 2009-08-28T19:34:16.790 に答える