2010-11-25

[maven][Android] mavenでAndroidアプリケーション


需要があるかどうかは分かりませんが、タイトル通りのことを行いたいと思います。
提供されているSDKではAntがどうやら使われているらしい。

以下、ディレクトリ(今回はAndroid2.2を参考に)
/{ANDROID_HOME}/platforms/android-8/ant

こういう感じでAntなら公式に提供されています。

しかしながら、同じようなビルドツール(枠は超えてるかも)のMaven環境は提供されていない。

自分はAntよりもMaven派なので、Mavenで行えないかということを模索。
どうやらMavenセントラル(http://repo1.maven.org/maven2/)には、android.jarがある模様。
ということは、できるのでは無いかと考えてみた。

maven-android-plugin(http://code.google.com/p/maven-android-plugin/)というものがあるでは無いか

という訳でこいつを使って作ってみることにする。
今回の環境
MacOS X 10.6.4(WindowsではXPで試しています)
eclipse 3.6 with ADT+m2eclipse
Maven 2.2.1

eclipseやMavenの設定は割愛(個人に合わせた設定をお願いします)
eclipseを使うのは、あくまでプロジェクト構成が欲しかった&m2eclipseでmaven連携をしやすくしたい為(プロジェクト構成が作れるならeclipseを使う必要は余り無い)

では手順を進めていきます。
1. eclipseでAndroidプロジェクトを立ち上げます(Activityやパッケージやその他設定はご自由にどうぞ)←今回はデフォルトのHelloWorld
2. BuildpathからAndroidを外す
3. 1で作ったプロジェクトを右クリック→Maven→Enable Dependency Management(この時決めるGroupIDやArtifactはご自由にどうぞ)
4. そうするとpom.xmlが開くので設定を追加していく
5. 以下のようにpom.xmlを記述(重要なのは最終成果<package>と依存関係<depedency>、プラグイン<plugin>←そのままコピペで使えます)



4.0.0
Hello
Hello
apk
0.0.1-SNAPSHOT


com.google.android
android
2.2.1
jar
provided






com.jayway.maven.plugins.android.generation2
maven-android-plugin
2.5.2





com.jayway.maven.plugins.android.generation2
maven-android-plugin
2.5.2


${env.ANDROID_HOME}
8

true

true


org.apache.maven.plugins
maven-compiler-plugin
2.3.1

1.6
1.6








6. 設定が終了したら以下のコマンドでtarget配下に*.apkファイルが出来ている

7. Androidを立ち上げて、出来たものをインストールして動作すれば出来上がり

8. 注意点
・androidのスコープはprovidedにしておく(compileにすると駄目)
・maven-compilerのソースやターゲットは1.5以上にする
・環境変数のパスを設定しておく(ANDROID_HOME)
・<platform> の要素は「/{ANDROID_HOME}/plathome/android-X」のX番号が来る。Android2.2だと8になる

機会があればテストに関しても追記したいと思います。

1 件のコメント:

  1. 下記の点、修正しないとエラーかも。。。

    ーなんとかidの箇所が、全部小文字なので、Id(先頭大文字)にする。
    ーpluginmanagement は、pluginManagement
    ーconfigurationは、要素内に直接1.6とは書かない。(削除)

    m2ecilpseのバージョンのせいかな?

    私の環境
    MacOS X 10.5.8
    eclipse 3.6.1 with ADT+m2eclipse 0.12.1.20110112-1712
    Maven 2.2.1

    返信削除

Blogger Syntax Highliter