飼育係(べべ)日記
2011-03-06(Sun) [長年日記]
_ mavenを使ったAndroidプロジェクトの構成管理
「maven-android-plugin」と「Maven: The Complete Reference」内のChapter 14を参照しながらやってみた記録。
- mavenレポジトリへのAndroidSDKのインストール(maven-android-sdk-deployer)
まずは環境変数の確認。
ANDROID_HOME=/path/to/android-sdk-linux_86
となっているのを確認。その後、maven-android-sdk-deployerのgithubからダウンロードしてきたtar玉を展開。展開したディレクトリの中で
mvn install
$ mvn clean install (略) [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Maven Android SDK Deployer ........................ SUCCESS [1.092s] [INFO] Android Platforms ................................. SUCCESS [0.031s] [INFO] Android Platform 1.5 API 3 ........................ SUCCESS [0.627s] [INFO] Android Platform 1.6 API 4 ........................ SUCCESS [0.229s] [INFO] Android Platform 2.1 API 7 ........................ SUCCESS [0.348s] [INFO] Android Platform 2.2 API 8 ........................ SUCCESS [0.619s] [INFO] Android Platform 2.3 API 9 ........................ SUCCESS [0.172s] [INFO] Android Platform 2.3.3 API 10 ..................... SUCCESS [0.466s] [INFO] Android Platform 3.0 API 11 ....................... SUCCESS [0.070s] [INFO] Android Add-Ons ................................... SUCCESS [0.149s] [INFO] Android Add-On Google Platform 1.5 API 3 .......... SUCCESS [0.121s] [INFO] Android Add-On Google Platform 1.6 API 4 .......... SUCCESS [0.038s] [INFO] Android Add-On Google Platform 2.1 API 7 .......... SUCCESS [0.051s] [INFO] Android Add-On Google Platform 2.2 API 8 .......... SUCCESS [0.066s] [INFO] Android Add-On Google Platform 2.3 API 9 .......... SUCCESS [0.045s] [INFO] Android Add-On Google Platform 2.3.3 API 10 ....... SUCCESS [0.061s] [INFO] Android Add-On Google Platform 3.0 API 11 ......... SUCCESS [0.016s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ (略)
エラーがでる時はANDROID_HOMEの値を確認する。AndroidSDKがきちんとインストールされているか確認する。ANDROID_HOME内のものをmavenレポジトリに再配置するので、ANDROID_HOME内にないとBUILD ERRORになるよ。特定のSDKバージョンだけ再配備したい場合は、-Pで指定。2.2だけの場合は以下の通り。
$ mvn install -P 2.2
あと、mavenのsettings.xmlに以下を追加。
<pluginGroups> <pluginGroup> com.jayway.maven.plugins.android.generation2 </pluginGroup> </pluginGroups>
こうしておくと、mvnを実行するときのgoal指定で"com.jayway.maven.plugins.android.generation2:maven-android-plugin:deploy"とかせずに、"android:deploy"とすることができる。
- プロジェクトの作成
-
先日はandroid create projectで作成したけど、ここもmavenで。Maven Android Archetypesを使う。特に何かのインストールはいらない。以下のようなオプションでmavenを実行。
$ mvn archetype:generate -DarchetypeArtifactId=android-release -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.5 -DgroupId=jp.hepo -DartifactId=FirstAndroidApp -Dpackage=jp.hepo.android -Dplatform=2.2
archetypeArtifactIdは"androidquick-start", "android-with-test", "android-release"の3種類あって、それぞれ「apkを作るまでを行う単一のAndroidプロジェクト」「android-quickstartの分に加えてテスト用のプロジェクトも一緒に」「android-with-testに加えてandroid-marketの公開用に署名やらなにやら一通りできるプロジェクト」ができる。
- プロジェクトをbuildしてみる
-
ここまでやったら、プロジェクトのディレクトリ内で
$ mvn clean install
してみる。うまくいけばapkができあがる。プロジェクトが"android-with-test"だったり"android-release"だったりしたときには、apkをエミュレータや実機にインストールして、テストを実行するところまでやってくれる。
- おまけ。その他わかったこと。
-
- エミュレータの起動・終了
-
pom.xmlの中に書いておいた名前のエミュレータの起動・終了ができる。pom.xmlに書いてなければ名前がDefaultのエミュレータを起動する。android.emulator.avdをコマンドラインで指定することもできる。
$ mvn android:emulator-start $ mvn android:emulator-stop $ mvn android:emulator-start -Dandroid.emulator.avd=froyo
pom.xmlの中でエミュレータを指定するには、以下のようにする。
<configuration> <emulator> <avd>froyo</avd> </emulator> </configuration>
- apkのインストール・アンインストール
-
deviceが複数見える状態でやるとbuild errorになる。
$ mvn android:deploy $ mvn android:undeploy