2011년 11월 17일 목요일

Eclipse 에서 ant 로 jar 파일 export 하기

참고:
Create an Android Jar Library with Eclipse - Oliva Corner - http://www.olivacorner.com/2011/04/create-an-android-jar-library-with-eclipse/
Jar Task - http://ant.apache.org/manual/Tasks/jar.html

Ant 를 사용해 본적은 없지만 jar 파일로 export 하는 일을 편하게 하기 위해 필요한 만큼 ant 사용법을 익혀 jar 파일 export 하는 방법을 알아 보았다.

1. xml 파일 생성
파일 이름은 원하는 대로 작성해도 된다. xml 파일을 생성한다.

2. xml 파일 작성
project 이름과 target 을 지정해 줘야한다.

예)

<?xml version="1.0" encoding="UTF-8"?>

<project name="LibExport" default="make-jar">

 <description>
  Simple JAR export.
 </description>

 <property name="bin" location="../bin/classes" />
 <property name="export" location="../export" />

 <!-- 현재 시간 얻기 -->
 <tstamp>
  <format property="filetime" pattern="yyyyMMdd_HHmm" />
 </tstamp>

 <target name="make-jar">
  <echo>JAR Export</echo>

  <jar destfile="${export}/myapp_${filetime}.jar">
   <fileset dir="${bin}">
    <exclude name="com/test/**" />
    <exclude name="com/important/test/*.class" />
    <exclude name="*.apk" />
    <exclude name="*.dex" />
    <exclude name="*.ap_" />
   </fileset>
  </jar>

 </target>
</project>


우선 위 예제는 [프로젝트 폴더]/bin/classes 폴더의 컴파일된 class 파일들을 [프로젝트 폴더]/export 폴더에 myapp_[작업 실행 시간].jar 라는 파일명으로 jar 파일을 export 하는 코드이다.

문법에 대해 간단히 설명을 하자면 target 태그 안에 fileset 태그를 이용해서 jar 파일에 포함할 파일과 포함하지 않을 파일을 지정했다.
exclude 태그는 포함하지 않을 파일 규칙을 설정한다.
작업 폴더를 설정하는 방법은 fileset 태그 이외에도 여러 방법이 있는 것으로 보이지만 잘 모르겠다.

3. xml 파일 실행
생성한 xml 파일을 마우스 오른쪽 버튼 클릭 하여 Run As > Ant Build... 을 선택해 보자.
그러면 xml 파일에서 지정한 target 목록이 나온다.
위 예제대로 했다면 make-jar 라는 target 이 보일 것이다.
target 을 선택하고 Run 버튼을 누르면 작업을 시작한다.

!) 주의 사항

SDK r14 이전까지는 [프로젝트 폴더]/bin 폴더에 class 파일들이 컴파일되었는데 SDK r14 부터는 bin/classes 폴더에 class 파일이 컴파일 된다.
r14 이전까지는 basedir 에 bin 을 입력하여야 하고 이후부터는 bin/classes 를 입력해야 한다.

댓글 없음:

댓글 쓰기