skip menu and go to main content

body start

개발환경 - 구현도구

  Android 구현 프로젝트에서 Maven Build 적용

11.02.14-13:07:39

156

Submitted by 정지범

 

View595

 

Android 프로젝트에서 Maven Build 적용
1. 개요
  전자정부 표준프레임워크에서 제시한 Maven Build를 이용하여 생산성향상, CI 적용 용이, 테스트 자동화 등의 효과를 얻고 있다. Android 프로젝트를 경험하면서 전자정부 표준프레임워크에서 제시한 Maven 빌드를 적용하고자 인터넷 사이트를 돌아다니며 적용을 완료했다. 물론 일부 기능은 완성도가 떨어지는 아쉬움이 있지만 프로젝트에서 활용하는데 전혀 문제점이 없는 것으로 판단된다.

2. 적용방법
2.1 Android plugin
 Android 환경에서 Maven을 활용하려면 반드시 Android plugin 을 활용하여야 한다.

== 적용예 시작==

            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>maven-android-plugin</artifactId>
                <configuration>
                    <sdk>
                        <path>${env.ANDROID_HOME}</path>
                        <platform>1.6</platform>
                    </sdk>
                    <deleteConflictingFiles>true</deleteConflictingFiles>
                    <sign>
                        <debug>false</debug>
                    </sign>
                </configuration>
                <extensions>true</extensions>
             </plugin>
== 적용예 끝 ==
시스템 환경변수에 ANDROID_HOME을 등록하여야만 maven에서 ${env.ANDROID_HOME}을 정확히 식별하고 동작한다.


2.2 dependency
 
== 적용예 시작==
        <dependencies>
                <dependency>
                        <groupId>com.google.android</groupId>
                        <artifactId>android</artifactId>
                        <version>1.6_r2</version>
                        <scope>provided</scope>
                        <type>jar</type> <!-- optional -->
                </dependency>
                
                <dependency>
                        <groupId>org.json</groupId>
                        <artifactId>json</artifactId>
                        <version>20080701</version>
                        <scope>provided</scope>
                </dependency>
        </dependencies>
== 적용예 끝==

2.3 jar signer plugin
 Android 개발에 있어서 가장 성가신 작업 중에 하나는 생성된 apk 파일에 인증서를 입히는 작업이다. 이 작업역시 jar signer plugin 으로 자동화 할 수 있다.

== 적용예 시작==
                        <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>${project.basedir}</archiveDirectory>
                                                        <includes>
                                                                <include>target/*.apk</include>
                                                        </includes>
                                                        <keystore>${user.home}\keystore\egovframe.keystore</keystore>
                                                        <storepass>egovframe001</storepass>
                                                        <keypass>egovframe001</keypass>
                                                        <alias>egovframe</alias>
                                                </configuration>
                                        </execution>
                                </executions>
                        </plugin>
== 적용예 끝==

2.4 Source 디렉토리 설정
 Android 에서 기본으로 제공하는 디렉토리 구조는 Maven 사용시 익숙한 소스코드 디렉토리 형태인 (src/main/java)의 형식을 따르지 않는다. 프로젝트 root 디렉토리에 바로 src디렉토리를 두는 구조이므로 아래와 같이 src 디렉토리를 설정해 주어야 한다..

== 설정예 시작==
        <build>
                <sourceDirectory>${project.basedir}/src</sourceDirectory>
                ...
        </build>
== 설정예 끝==

2.5 Continuous Integration 적용
 기존 java 프로젝트와 다름 없이 Continuous Integration을 적용할 수 있다. 다만, Android SDK 와 유기적으로 상호작용하여 빌드가 이루어 지기 때문에 Android SDK가 설치되는 OS 에서만 수행할 수 있다는 것이 제약사항이다.

Comments on this artfact

0 Comments

정지범

Body was changed

11.02.14-13:11:14

정지범

Body was changed

11.02.14-13:12:42

정지범

Body was changed

11.02.14-13:16:14

정지범

Body was changed

11.02.15-18:30:46