オーガナイザ
一言で言うと、登録したフォルダに応じたコマンドラインを実行するアクションを設定できる環境。エディタも付いてる。
便利なことにXcodeプロジェクトファイルやAnt buiild.xmlファイルがあるフォルダは自動でビルドや実行のアクションが設定される。
.svnなフォルダにsvn updateやsvn commitをアクションとして設定するとより便利に*1。
似たような事はXcodeプロジェクトのターゲット作成でも可能なのだけど、オーガナイザは隠蔽された専用プロジェクトにフォルダに対応したターゲットを設定していくようだ。
~/Library/Application Support/Developer/Shared/Xcode/Organizer.xcorganizerがそれっぽい。
Apple内部でExternal buildターゲットを多用してコマンドラインベースの開発環境を利用する一派がいたので専用のUI付けちゃえとなったに違いない。
Antに限らずコマンドラインベースで作業するなら無理にXcodeプロジェクトを作るよりオーガナイザを利用した方が早そう。
以下Flex SDK用のAnt build.xmlのコード。
build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="プロジェクト名" default="compile" basedir="."> <property name="src" location="src"/> <!-- java source folder --> <property name="lib" location="lib"/> <!-- local libraries linked against --> <property name="dist" location="dist"/> <!-- build product location --> <property name="compile.debug" value="true"/> <property name="FLEX_HOME" value="Flex SDKのパス"/> <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/> <!-- Initialization target, for any prelimary setup needed to build --> <target name="init" description="Preparation"> <mkdir dir="${src}"/> <mkdir dir="${lib}"/> <mkdir dir="${dist}"/> </target> <target name="compile" depends="init" description="Build Flash"> <mxmlc file="${src}/コンパイルするファイル" output="${dist}/出力するファイル.swf"> <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> <include-libraries dir="${lib}" includes="**/*.swc"/> </mxmlc> </target> <target name="run" depends="compile" description="Play Flash"> <exec dir="${dist}" executable="/usr/bin/open" os="Mac OS X"> <arg line="出力するファイル.swf"/> </exec> </target> <target name="clean" description="Remove Flash"> <delete dir="${dist}"/> </target> </project>
*1:こっちも自動で設定してくれれば言うこと無いんだけど