maven-android-plugin で、Androidプロジェクトの構成管理やってみる

既に使いこなしている @miyatay さんからpom.xmlを分けてもらったので、@zaki50 さんと @bols_blue さんと @hidecheck さんと4人で束になって倒してみた。

なにがうれしいの?

構成管理できると、依存関係の追加とか簡単にできて楽だよ!
あと、Hudsonで簡単にCIぶんぶん丸できて幸せらしいよ!!

↑この程度の認識の奴がmavenに手を出すと不幸になるのは確定的に明らか
現在僕は不幸です!!ちくしょう!!(問題点が解決できない)

やってみよう!

正直参考リンクの通りにやれ、で全部終わる予感。

とりあえず動くコード この記事書いてる時は commit 004f0ef
maven-android-plugin GettingStarted
samples サンプルすごい役に立つ

基本的なところ

Androidプロジェクト作成

mavenコマンドの覚え書き

Mavenコマンド

settings.xml(~/.m2 とかに置くやつ)に必要な設定

こんなん 各自自分用に書き換えてください。

Eclipseで使うには?

mvn eclipse:eclipse しても、gen周りがうまく行かなくて可哀想な感じになります。
m2eclipseで頑張らないとだめそうです。
しかも、m2eclipseだけじゃだめで、m2eclipse-android-integrationも併せてインストールしておいてください。
んで、プロジェクトを右クリックして Maven→Enable Dependency Management を選択し、もっかいMaven→Update Progect Configurationしてあげてください。
これで、Eclipseで開発ができるようになるはず。Android natureが付加されていない場合は適当に付加して、Build pathからAndroidライブラリの束を取り除いてやったほうがいいかもしれません。(Maven Dependenciesに含まれるandroid-1.6_r2.jarとかとクラスがバッティングする?)

問題点

Eclipseで開発する際、謎のエラーが発生して解決できなくなる場合がある。

Description	Resource	Path	Location	Type
Conversion to Dalvik format failed with error 1	hellomvntest		Unknown	Android Packaging Problem

こんなん。プロジェクトをクリーンしても駄目で、ビルドパス関係をごしごしいじくってるとたまに直る。
根本原因がわからんのと、直し方がわからんくてだめです…。
なんか結構m2eclipseのログに赤字のエラーが出てるのが気になるのです…

10/11/03 13:53:48 JST: Build errors for hellomvn; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.6.0:emulator-start (startemulator) on project hellomvn: 

10/11/03 13:53:49 JST: [ERROR] Error when generating sources. No Android SDK path could be found. You may configure it in the pom using <sdk><path>...</path></sdk> or <properties><sdk.path>...</sdk.path></properties> or on command-line using -Dandroid.sdk.path=... or by setting environment variable ANDROID_HOME

10/11/03 13:53:49 JST: Build errors for hellomvntest; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.6.0:generate-sources (default-generate-sources) on project hellomvntest: No Android SDK path could be found. You may configure it in the pom using <sdk><path>...</path></sdk> or <properties><sdk.path>...</sdk.path></properties> or on command-line using -Dandroid.sdk.path=... or by setting environment variable ANDROID_HOME

10/11/03 13:53:49 JST: [ERROR] Error when generating sources. No Android SDK path could be found. You may configure it in the pom using <sdk><path>...</path></sdk> or <properties><sdk.path>...</sdk.path></properties> or on command-line using -Dandroid.sdk.path=... or by setting environment variable ANDROID_HOME

一応、それでもプロジェクトにエラーは出ず、ちゃんと使えてるっぽいんですけどね…。
SDK pathとかもsettings.xmlに書いてあるはずだし、なんで怒られるのかわかりまてん…。

あと、やぱしapkのサイズが大きくなりがちな傾向があるので、proguardとかでshrinkしたいけどやり方がわからにぃ。

その他

android maven - 過去ログ - Cometeo

今後、@zaki50 さんがmvnからarchetypeAndroidプロジェクト作れるようにしてくれるっていってたので期待!
みんなもおうえんのついーとをしてあげてください!げへげへ。