外部ライブラリのすゝめ
きっかけ
GoogleAppEngineとAndroidの開発をしていて、共通に使用するコードを外部ライブラリ化したかったんだけど
プロジェクトのプロパティから他のプロジェクトの参照という方法では
簡単にはjarファイルを任意の場所に置けない事が分かって*1
いろいろ試行錯誤してこれに落ち着きそうな感じです。
ant
antを使えばjavaのコンパイルや、jarファイル作成などマクロみたいに組むことができるんで
antのbuild.xmlを書きました。
ディレクトリ構成
root src bin build.xml xxx.jar
Eclipseで作成する普通のJavaプロジェクトで、build.xmlはプロジェクトの直下に置きます。
jarファイルはプロジェクト直下にできます。
ソース
<?xml version="1.0" encoding="utf-8" ?> <project name="xxx" default="deploy"> <property name="jarname" location="./xxx.jar" /> <property name="src" location="./src" /> <property name="bin" location="./bin" /> <target name="compile"> <delete dir="${bin}/*" /> <javac srcdir="${src}" destdir="${bin}" /> </target> <target name="build"> <delete file="${jarname}" /> <jar jarfile="${jarname}"> <fileset dir="${src}" /> <fileset dir="${bin}" /> </jar> </target> <target name="deploy" depends="build"> <copy file="${jarname}" todir="./../gae_project/war/WEB-INF/lib" /> <copy file="${jarname}" todir="./../android_project/assets" /> </target> </project>
androidの外部ライブラリを作る
androidSDKのAPIを使う外部ライブラリを作りたいなと思ったので、それも調べました。
ようはandroid.jarを参照ライブラリに追加すればいいですね。
とりあえずユーザライブラリにAndroid.jarを追加する
- Eclipseの環境設定
- java
- Build Path
- User Libraries
- New...
- 「Android 2.2」と入力
- 「Android 2.2」を選択
- Add JARs...
- 「/Applications/android-sdk-mac_86/platforms/Android-8/android.jar」を選択*4
これはandroid 1.5からそれぞれのバージョンしておくといいかもしれませんね。
あとはライブラリプロジェクトの参照ライブラリに追加します。
- プロジェクトで右クリック
- Build Path
- Add Libraries
- User Library
- 「Android 2.2」を選択
これでAndroidSDKのAPIを使ったライブラリを作ることができます。
最後に
ほぼ自己流でやってるんで、こういうところを改善した方がいいよ!ってあったら教えてください!
特にant歴は3時間くらいなんで、すげー怪しいです。
twitterでも!コメントででも!