ant -find build.xml
サブフォルダから上方にある build.xml を探すために ant の -find オプションが使えることを知りました。これまでは、ant と make を併用していたのですが、これで make とは決別しました。
flex4(air)、java のプログラムを emacs(meadow3.0)で行っているので、emacs の compile-command は修正しましたが、build.xml は従来のままで使えました。しかし、clean (バックアップファイルなどの削除) はサブフォルダ内も探索できるように変更となりました。
.emacsを除く、ビルド環境は 記事 2009.10.20 Loggerのソース一式(newbieLogger-20091023.lzh)にあります。
.emacs の変更
コンパイルコマンドを変更しました。キー割り当ても関連して変更しています。これらの設定で、xml、mxml、java、ActionScript 等で Control+c Control+c でコンパイルを行えるようになります。^c^cはコメント・リージョンが既定でしたが、僕はめったに使わないので、^c^c に割り当てました。
;; グローバルキー割り当て ;; コンパイル不要な関連ファイル(xml,mxmlなど)でも実行 (global-set-key "\C-c\C-c" 'compile) ;; java モードのキー割り当て (add-hook 'java-mode-hook '(lambda () (local-set-key "\C-c\C-c" 'compile))) ;; actionscriptのキー割り当て (add-hook 'actionscript-mode-hook '(lambda () (local-set-key "\C-c\C-c" 'compile))) ;; コンパイルコマンド (setq compile-command "ant -find build.xml")
build.xml 変更箇所
サブフォルダ内 のバックアップファイルも削除できるように変更しました。ant のマニュアル(File Task)に載っています。
<target name="clean"> <delete verbose="true"> <fileset dir="." includes="**/*~" defaultexcludes="no"/> </delete> </target>
フォルダ構成の例
Application.java を修正した後ビルドを行うと、ant に -find オプションが付いていれば、カレントフォルダに build.xml がない場合に、上方にある build.xml を探してビルドしてくれます。