* 필요한 eclipse 플러그인 설치 (마켓에서 다운로드 가능합니다.)
- Maven Integration for Eclipse
- Android Configurator for M2E


* 이클립스 환경설정
- maven 3.0.3 이상 설치
--> http://maven.apache.org/download.html
현재의 eclipse 플러그인의 maven 은 3.0.3 이하 버젼이라서 최신버젼을 다운받아야 합니다.
다운받은후에 eclipse 의 maven 설정에서 설치한 3.0.3 을 선택해 줍니다.

- jdk 6이상 선택
이클립스 기본 컴파일러를 jdk 6 이상으로 선택해 줍니다.
jre 가 선택되어 있다면 컴파일시 오류납니다.


* eclipse 에서 android 프로젝트 생성
- 이 부분은 기존의 android 프로젝트 생성하는것과 동일합니다.


* maven 프로젝트로 변경
- 생성된 android 프로젝트에 마우스오른쪽 -> Configure -> Convert to maven project 를 클릭합니다.

위와같이 입력하면 pom.xml 이 생기면서 maven 프로젝트가 됩니다.

- 추가후 바로 오류가 나는데 아래와같이 pom.xml 파일을 변경하면 오류가 없어집니다.

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.cranix.android</groupId>
    <artifactId>mvnandroidtest2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>apk</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>


    <build> 
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <version>3.0.0-alpha-13</version>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>
</project>

- 원래 있던 src 폴더를 src/main/java 로 변경하여 아래와같은 구조가 되도록 합니다.

image

- 프로젝트 마우스오른쪽 –> maven –> update project configuration 을 실행해서 pom 에 설정된값을 eclipse 에 적용합니다.
- 이작업을 하면 위의 src/main/java 폴더가 자동으로 소스폴더가 되는것을 확인할수 있습니다.

 

* 빌드 테스트 해보기
- Run As –> maven build … 을 클릭해서 아래와 같이 채웁니다.



- 실행한후에 target 디렉토리에 apk 파일이 생성되었다면 제대로 셋팅 완료된것입니다.

 

* apk 실행하기
apk 를 실행해보기 위해서는 에뮬레이터를 켜놓거나 디버그용 폰을 꼽아놔야 합니다.
그상태에서 maven 으로 아래 명령을 실행하면 됩니다.

 

 

* sign 파일로 서명하기
apk 를 만들때 서명하기 위해서는 아래와같은 플러그인을 추가하면 됩니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jarsigner-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <id>signing</id>
            <goals>
                <goal>sign</goal>
            </goals>
            <phase>package</phase>
            <inherited>true</inherited>
            <configuration>
                <archiveDirectory></archiveDirectory>
                <includes>
                    <include>target/*.apk</include>
                </includes>
                <keystore>${keystorepath}</keystore>
                <storepass>${storepass}</storepass>
                <keypass>${keypass}</keypass>
                <alias>${alias}</alias>

            </configuration>
        </execution>
    </executions>
</plugin>

굵은 부분은 자신이 가지고있는 사인파일과 비밀번호로 쓰시고 clean package 를 했을때 오류없이 잘 되었다면 제대로 설정된 것입니다.

 

* 문제점
- 테스트는 지원이 되지만 기존에 ant 기반에서 지원하던 emma coverage report 는 지원되지 않습니다.

--> emma coverage report 를 뽑아내는 과정이 실행되는곳은 test 프로젝트 인데 여기서 원래 프로젝트의 소스가 필요합니다. 그런데 maven 기반이면 각 프로젝트를 dependency 로서 관리하기때문에 따로 소스에 접근할 방법이 없습니다.

 

 

* 참고사이트

- http://code.google.com/p/maven-android-plugin/

by cranix 2012. 1. 25. 10:50