Android開発環境をセットアップしてMavenでビルドできるようにする


環境はLion上で構築します。OSが違う方は適時読み替えて下さい。
2012/05/31時点の情報なのでVerUP等により、今後は方法は変わるかもしれません。
この点はご注意下さい。



Javaを入れます。



Android SDKをダウンロードして任意の場所におきます。



Eclipseをセットアップします。




ADTをセットアップします。



ADTにAndroid SDKを結びつけます。
任意の場所に置いたパスを入れます。



必要なコンポーネントを選んでインストールします。
ダウンロードしながらインストールして時間がかかります。
必要なコンポーネントによっては端末の開発者登録ID等が
要求されますので入力して進めます。



Eclipse Marketplaceから



m2eと



Android Configurator for M2E をインストールします。



Eclipse -> 環境設定 -> Maven -> Discovery を開いて
Open Catalogボタンを押します。



mavenarchiver pompropertiesと



maven.runtime.3.0.3をインストールします。



開発用の証明書を作ります。
Terminalの文字コードSJISにして文字化けしないように進めます。

$ cd Documents
$ mkdir keystore
$ cd keystore
$ keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"
キーストアのパスワードを入力してください:  
新規パスワードを再入力してください: 
10,000 日間有効な 1,024 ビットの RSA の鍵ペアと自己署名型証明書 (SHA1withRSA) を生成しています
	ディレクトリ名: CN=Android Debug, O=Android, C=US
<androiddebugkey> の鍵パスワードを入力してください。
	(キーストアのパスワードと同じ場合は RETURN を押してください):  
[debug.keystore を格納中]


$ keytool -list -v -keystore debug.keystore -storepass 123456

キーストアのタイプ: JKS
キーストアのプロバイダ: SUN

キーストアには 1 エントリが含まれます。

別名: androiddebugkey
作成日: 2012/05/31
エントリタイプ: PrivateKeyEntry
証明連鎖の長さ: 1
証明書[1]:
所有者: CN=Android Debug, O=Android, C=US
発行者: CN=Android Debug, O=Android, C=US
シリアル番号: 4fc6df8b
有効期間の開始日: Thu May 31 12:03:39 JST 2012 終了日: Mon Oct 17 12:03:39 JST 2039
証明書のフィンガープリント:
	 MD5:  B5:BB:BF:B6:D8:94:16:7E:61:D4:89:42:78:A8:64:E7
	 SHA1: 6D:B3:ED:78:AF:19:07:90:4A:8E:80:8A:F7:99:46:7A:64:00:07:4A
	 署名アルゴリズム名: SHA1withRSA
	 バージョン: 3


*******************************************
*******************************************


Mavenの設定をして証明書とSDKの場所等を記述します。

$vi $HOME/.m2/settings.xml


settings.xml

<settings>
  <profiles>
    <profile>
      <id>sign</id>
      <properties>
        <keystore>
          /Users/matakeda/Documents/keystore/debug.keystore
        </keystore>
        <storepass>123456</storepass>
        <keypass>123456</keypass>
        <alias>debug</alias>
      </properties>
    </profile>
    <profile>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <id>always</id>
      <properties>
        <android.sdk.path>
          /Users/matakeda/Documents/android-sdk-macosx
        </android.sdk.path>
      </properties>
    </profile>
  </profiles>
</settings>
<settings>
  <pluginGroups>
    <pluginGroup>
      com.jayway.maven.plugins.android.generation2
    </pluginGroup>
  </pluginGroups>
</settings>



Projectを作成します。



Maven Projectを作成します。



Next



Add ArcheType



Archetype Group Id: de.akquinet.android.archetypes
Archetype Artifact Id : android-quickstart
Archetype Version: 1.0.8
Repository URL: 空白
を入力します。



追加したArcheTypeを選びます。



作りたいProjectの情報を入れます。
※plug-inのVersionは3.2.0を入れて下さい。
 画像では違うものになっています。



Projectの設定をアップデートします。



依存関係が解決されます。



文字コード等を任意のものに変更します。



maven installしてみるとtargetにファイルが出来上がります。


文字コードの調整等をした最終的なpom.xmlです。
Android SDK等はケースによって変わります。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>jp.techie.android</groupId>
    <artifactId>sample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>apk</packaging>
    <name>sample</name>

    <properties>
        <platform.version> 2.3.3</platform.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <version>${platform.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
                    <assetsDirectory>${project.basedir}/assets</assetsDirectory>
                    <resourceDirectory>${project.basedir}/res</resourceDirectory>
                    <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
                    <sdk>
                        <platform>10</platform>
                    </sdk>
                    <undeployBeforeDeploy>true</undeployBeforeDeploy>
                </configuration>
                <extensions>true</extensions>
            </plugin>
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <configuration>
                <encoding>UTF-8</encoding>
              </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>