ちょっと前になりますが、Mike Chambersさんが自身のblogでcompcでのswc作成方法を紹介していました。
最初のエントリには、コマンドラインでcompcを実行する方法と、Manifest.xmlの書き方が出ています。リンクにはmxmlcとcompcのオプションがかかれているページやManifestファイルの紹介ページがありました。
2つ目のエントリは、compcをantを用いてバッチ的に行う方法がbuild.xmlとともに紹介されています。
build.xmlで指定しているのは、compcのコマンドを実行するタイプでした。
s2flex2ではAMF3のgatewayに接続する為のcomponentを別途作成しているのですが、このコンポーネントでもswcファイルを作っています。
swcファイルは、Flex Libraryプロジェクトで作成して設定を追加すれば作成することができますが、作りはじめた当初はうまく作成できなかったので、antを用いて作成していました。
Mike Chambersさんとちがうところは、compcの実行の仕方です。
S2Flex2-componentsでは、compcの実行をjavaで行っています。
<target name="build" depends="" description="creating a swc..">
<java jar="${compc}"
fork="true"
failonerror="true"
maxmemory="128m"
>
<arg value="-keep-generated-actionscript=false"/>
<arg value="-library-path"/>
<arg value="${frameworks.dir}"/>
<arg value="-source-path"/>
<arg value="src/actionscript3"/>
<arg value="-library-path"/>
<arg value="${frameworks.dir}"/>
<arg value="${frameworks.dir}/framework.swc"/>
<arg value="${frameworks.dir}/rpc.swc"/>
<arg value="-o"/>
<arg value="target/s2flex2-components.swc"/>
<arg value="-namespace" />
<arg value="http://www.seasar.org/s2flex2/mxml"/>
<arg value="src/resources/Manifest.xml"/>
<arg value="-include-namespaces" />
<arg value="http://www.seasar.org/s2flex2/mxml" />
<arg value="-include-classes"/>
<arg value="org.seasar.flex2.rpc.remoting.S2Component"/>
<arg value="org.seasar.flex2.rpc.remoting.S2Flex2Service"/>
</java>
</target>
※Flex 2.0 Beta3対応です。
どっちでやってもあんまり変わんないかもしれないのですが、Flex 2.0 SDKだけで行うには、プラットフォームを気にしないjava実行の方が使いまわせるかもしれません。
いづれにしても、Beta版が新しくなるたびに古いバージョンで作成されたswcは使えなくなり、compcのオプションも毎回すこしづつ変わって動作しなくなります。
そのたびにbuild.xmlも修正することになるので、今の段階ではFlex Builder 2.0限定になってしまいますが^^;Flex Libraryプロジェクトで作成するのが一番簡単かもしれません。
Mike Chambersさんのこのcompcに関するエントリーが4ヶ月前にあったら、あの頃あんなに悩まなくてもよかったのになぁと思ってしまいました。(>_<)
Example : Using ANT with COMPC to compile SWCs
http://weblogs.macromedia.com/mesh/archives/2006/05/example_using_a.html
Quick Example : Using COMPC to compile SWCs
http://weblogs.macromedia.com/mesh/archives/2006/05/quick_example_u.html
Invoking the command-line compilers with Java
コマンドラインでのmxmlcをjavaを用いて実行する方法が書かれています。
compcも同様にできます。
http://livedocs.macromedia.com/labs/1/flex20beta3/00001836.html


この記事に対するコメント