2015년 4월 20일 월요일

ant 사용법

# build.xml 파일의 기본구조
<?xml version="1.0" encoding="euc-kr"?>
<project name="projectName" default="defaultTargetName" basedir=".">
 <property name="" location=""/>
 <target name="">...</target>
 <target name="" depends="">...</target>
 <target name="" depends="">...</target>  
 <target name="" depends="" if="">...</target> 
 <target name="" depends="" unless="">...</target>  
</project>

# project 태그 
 1) name : 프로젝트의 이름 
 2) default : Ant를 실행할때 target을 지정하지 않은 경우 기본적으로 사용할 target (필수)
 3) basedir : 경로 계산할때의 기준 디렉토리. 지정하지 않은 경우 현재 디렉토리가 basedir로 사용된다. basedir 프로퍼티의 값으로도 사용된다.

# target 태그
 1) name : 타켓의 이름 (필수)
 2) depends : 이 타겟이 의존하고 있는 타겟의 목록. 각 타켓의 이름은 ,(콤마) 로 구분한다.
 3) if : 지정한 프로퍼티가 설정되어 있는 경우 이 타겟을 수행한다.
 4) unless : 지정한 프로퍼티가 설정되어 있지 않은 경우 이 타겟을 수행한다.
 5) description : 타겟이 수행하는 기능에 대한 설명
 
# ant 경로 규칙 
 1) * : 0개 또는 그이상의 글자가 매칭
 2) ? : 한글자와 매칭 
 3) ** : 다계층을 나타냄  예) dir/**/A => dir/dir1/A, dir/dir2/A, dir/dir1/dirA/A 다 포함.
 4) / 또는 \ 으로 끝날 경우  : /** 또는 \** 과 동일
 
# includes 속성 : 포함시킬 파일의 목록 (include 태그, includesfile 속성으로 사용 가능)

# excludes 속성 : 제외시킬 파일의 목록 (exclude 태그, excludesfile 속성으로 사용 가능)

# excludes 속성 명시 여부에 상관없이 제외 되는 것들 : 제외 시키고 싶지 않을 경우 defaulteexcludes = "no" 설정
 - **/*~, **/#*#, **/.#*, **/%*%, **/._*
 - **/CVS, **/CVS/**, **/.cvsignore
 - **/SCCS, **/SCCS/**
 - **/vssver.scc
 - **/.svn, **/.svn/**
 - **/.DS_Store

# fileset 태그 : 파일 집합
 1) dir : 파일 집합을 표시할 때의 루트 디렉토리 (dir 또는 file 중 한개 반드시 명시)
 2) file : 한 개의 파일을 명시할 때 사용하는 속성  (dir 또는 file 중 한개 반드시 명시)
 3) casesensitive : 대소분자 구분 여부 (true/false) 기본값 true
 4) followsymlinks : 심볼릭 링크를 따라갈지의 여부 (true/false) 기본값 true)
  사용 예)
 <fileset dir="${basedir}/src" defaultexcludes="no">
  <include name="**/*.java"/>
  <include name="**/*.properties"/>
  <exclude name="**/*.bak"/>
 </fileset>

# dir 태그 : 디렉토리 집합
 1) dir : 디렉토리 집합을 표시할 때의 루트 디렉토리 (필수)
 2) casesensitive : 대소분자 구분 여부 (true/false) 기본값 true
 3) followsymlinks : 심볼릭 링크를 따라갈지의 여부 (true/false) 기본값 true)
  사용 예)
 <dirset dir="" includes="" excludes=""/>
 
# patternset 태그 : 재사용 가능한 파일 집합
 사용 예)
 <patternset id="commonJar">
  <include name="servlet.jar"/>
  <include name="mail.jar"/>
  <include name="activation.jar"/>    
 </patternset>
 
 <fileset dir="j2eelib">
  <patternset refid="commonJar"/>
 </fileset>
 
# path 태그 : 재사용 가능한 경로 목록의 집합
 사용 예)
 <path id="project.class.path">
  <pathelement location="fileupload/WEB-INF/classes"/>
  <pathelement path="lib/servlet.jar;lib/commons-fileupload-1.0.jar"/>
 </path>
 
 <classpath refid="project.class.path"/>
 
 - location : 하나의 파일 또는 디렉토리 지정
 - path : 여러 경로를 지정 (; 또는 : 으로 구분)


# 아래의 build.xml 파일에서 ant makeZip 을 할경우 complie 은 두번이 아닌 한번만 실행되게 된다.
 <project name="build" default="makeZip" basedir=".">
  <target name="compile"/>
   <target name="srcCopy" depends="compile"/>
   <target name="classCopy" depends="compile"/>
   <target name="makeZip" depends="srcCopy, classCopy"/>
 </project>

# property 태그 : property 지정
 1) name : 프로퍼티의 이름
 2) value : 프로퍼티의 값을 지정 (name 속성 지정시 value 또는 location 둘중 하나 반드시 사용)
 3) location : 지정한 경로명의 절대 경로명을 값으로 지정 (name 속성 지정시 value 또는 location 둘중 하나 반드시 사용)
 4) resource : 프로퍼티 파일을 읽어 올 때 사용할 자원명을 지정 (name 속성 사용않는 경우 resource, file, environment 중 하나 반드시 사용)
 5) file : 지정한 파일로부터 프로퍼티 목록을 읽어 온다 (name 속성 사용않는 경우 resource, file, environment 중 하나 반드시 사용)
 6) environment : 환경 변수를 읽어 올때 사용할 접두어를 지정 (name 속성 사용않는 경우 resource, file, environment 중 하나 반드시 사용)
 7) classpath : 자원으로부터 프로퍼티 파일을 읽어 올 때 사용할 클래스 패스
 8) classpathref : 클래스패스로 사용할 경로를 path 태그 로 부터 가져온다.
 9) prefix : resource 또는 file 속성을 사용하여 읽어 온 프로퍼티를 참조할 때 사용할 접두어를 지정한다. 만약 접두어 맨뒤에 "." 가 포함되어 있지 않을 경우, 자동으로 "."이 접두어 뒤에 붙는다.
 사용 예)
 <property file="${basedir}/buildprop/global.properties"/>
 
 <property environment="env"/>
 <echo message="JAVA_HOME ${env.JAVA_HOME}"/>

# 기본 프로퍼티 : property 태그 사용하지 않아도 사용 가능한 프로퍼티
 - 모든 자바의 시스템 프로퍼티
 - basedir : 프로젝트의 기본 디렉토리의 절대 경로. project 태그의 basedir 속성에 명시된 값
 - ant.file : 빌드 파일의 절대 경로
 - ant.version : Ant 버전
 - ant.project.name : 현재 실행주인 프로젝트의 이름. project 태그의 name 속성에 명시된 값
 - ant.java.version : Ant 가 발견한 자바 버전.
 
# javac
 1) srcdir : 소스가 위치한 디렉토리 (src 태그로 지정가능. 둘 중 하나 필수)
 2) descdir : 생성된 클래스가 위치할 디렉토리를 지정. javac -d 옵션과 동일
 3) classpath : 컴파일할 때 사용할 클래스패스 (class 태그로 지정 가능)
 4) classapathref : path 태그로 지정한 경로를 클래스패스로 참조
 5) encoding : 소스파일의 인코딩을 지정. javac -encoding 옵션과 동일
 6) nowarn : 컴파일시 -nowarn 옵션 추가 (on) 기본값은 off
 7) deprection : 컴파일시 -deprecation 옵션 추가 (on) 기본값은 off
 사용 예)
 <javac srcdir="" descdir="">
  <classpath>
   <fileset>
    <patternset refid=""/>
   </fileset>
  </classpath>
 </javac>
 
# jar
 1) destfile : 생성할 jar 파일 지정
 2) basedir : jar 파일로 압축할 기본 디렉토리 지정

 사용 예)
  <jar destfile="${disc}/lib/app.jar" basedir="${build}/classes"/>
  
  <jar destfile="${disc}/lib/app.jar">
   <fileset dir="${build}/classes" exclude="**/test*.class"/>
   <fileset dir="${src}/resources"/>
  </jar>

# zip
 - 기본적으로 jar 사용법와 같이 사용 가능.
 - zipfileset 태그를 사용하여 압축되는 파일의 경로명을 변경할 수 있음.
 - zipfileset 의 속성
  1) prefix : ZIP 파일에 압축될 때 변경되어 들어갈 경로명
  2) fullpath : 특정 파일의 변경될 경로를 지정
  3) filemode : 유닉스 기반의 시스템에서 압축되는 파일의 모드를 지정. 기본값은 644
  4) dirmode : 유닉스 기반의 시스템에서 압축되는 디렉토리의 모드를 지정. 기본값은 775
 사용 예)
 <zip destfile="${dist}/example.zip">
  <zipfileset dir="build/api" prefix="docs/api"/>
  <zipfileset dir="${basedir}"includes="chang.log.20031227" fullpath="docs/chagelog.txt"/>
  <zipfileset dir="build/classes" prefix="classes"/>
  <zipfileset dir="build/src" prefix="src"/>
 </zip>

# war
  사용 예)
  <war destfile="main.war" webxml="src/metadata/web.xml">
   <fileset dir="src/mainapp/html"/>
   <fileset dir="src/mainapp/jsp"/>
   <lib dir="lib">
    <exclude name="logging2.jar"/>
   </lib>
   <classes dir="build/main/classes"/>
   <zipfileset dir="src/imagefile/images" prefix="images"/>
  </war>

# tar
 - 기본 사용 법 : <tar destfile="" basedir=""/>
 - tarfileset 태그
 - targileset 의 속성
  1) mode : 3자리 8진수값. 775 등의 값을 갖는다.
  2) username : 파일에 대한 사용자 이름을 지정한다. UID와는 다르다.
  3) group : 파일에 대한 그룹 이름을 지정한다. GID와는 다르다.
  4) prifix : tar 파일에 압축될 때 변경되어 들어갈 경로명
  5) fullpath : 특정 파일의 변경될 경로를 지정
  6) preserveLeadingSlashes : 맨 앞의 '/'를 유지할지의 여부를 지정. 기본값 : false
 사용 예)
 <tar destfile="${dist}/example.tar">
  <tarfileset dir="build/api" prefix="docs/api"/>
  <tarfileset dir="${basedir}" includes="chage.log.20031227" fullpath="docs/chagelog.txt"/>
  <tarfileset dir="build/classes" prefix="classes"/>
  <tarfileset dir="build/src" prefix="src"/>
 </tar>
 <gzip zipfile="${dist}/example.tar.gz" src="${dist}/example.tar"/>
 
 <tar destfile="${dist}/example.tar.gz" basedir="${build}" compression="gzip"/>

# javadoc
 1) sourcepath : 소스 파일의 경로 지정. 하위 디렉토리까지 모두 처리 (sourcepath, sourcepathref, sourcefiles 중 하나는 필수)
 2) sourcepathref : path 에서 지정한 경로를 소스 파일의 경로로 사용 (sourcepath, sourcepathref, sourcefiles 중 하나는 필수)
 3) sourcefiles : 소스 파일의 목록을 지정. 각 파일은 콤마(,)로 구분 (sourcepath, sourcepathref, sourcefiles 중 하나는 필수)
 4) destdir : 결과 파일이 생성될 디렉토리
 5) packagenames : 콤마로 구분된 패키지 파일의 목록. 패키지명이 *로 끝날 경우 그 하위 패키지까지 모두 처리한다.
 6) excludepackagenames : 문서를 생성하지 않을 패키지의 목록을 지정. 각 패키지는 콤마(,)로 구분. 패키지명이 *으로 끝날 경우 그 하위 패키지까지 모두 제외
 7) access : 접근 모드를 지정. public, protected, package, private 중 한 가지 값. 기본값 : protected
 8) public : 생성되는 API 문서에 public 클래스와 멤버만 보여준다.
 9) protected : 생성되는 API 문서에 protected/public 클래스와 멤버만 보여준다.
 10) package : 생성되는 API 문서에 package/protected/public 클래스와 멤버만 보여준다.
 11) private : 생성되는 API 문서에 private/package/protected/public 클래스와 멤버만 보여준다.
 12) encoding : 소스 파일의 인코딩을 명시.
 13) locale : ko_KR과 같이 사용할 로케일을 지정.
 14) charset : 생성된 문서를 보여줄 때 사용할 케릭터셋을 지정.
 15) version : @version 주석을 포함.
 16) author : @author 주석을 포함.
 17) nodeprecated : deprecated 정보를 포함하지 않는다.
 18) nodeprecatedlist : deprecated 목록을 생성하지 않는다.
 19) windowtitle : 문서를 위한 제목을 텍스트로 입력.
 20) overview : HTML 문서로부터 개략 문서를 읽어 온다.
 21) helpfile : 도움말로 사용할 HTML 파일을 지정.
 22) stylesheetfile : 스타일 시트로 사용할 파일을 지정.
 23) header : 생성될 HTML 파일의 헤더로 사용될 HTML 코드를 명시
 24) footer : 생성될 HTML 파일의 풋터로 사용될 HTML 코드를 명시 
 
 사용 예)
 <javadoc destdir="{build}/api"
  sourcepath="src"
  packagenames="javacan.main.*"
  excludepackagenames="javacna.main.test.*"
  windowtitle="Main 웹 어플리케이션"
  encoding="euc-kr" />
  
 <javadoc destdir="{build}/api"
  windowtitle="Main 웹 어플리케이션"
  encoding="euc-kr">
  <packageset dir="src" defaultexcludes="yes">
   <include name="javacan/main/**"/>
   <exclude name="javacan/main/test/**"/>   
  </packageset>
 </javadoc>
 
# copy
 1) file : 복사할 파일을 지정 (fileset으로 복사할 파일 목록을 지정하지 않는 경우 필수)
 2) tofile : 복사될 파일을 지정
 3) todir : 원본을 복사할 디렉토리를 지정
 4) overwrite : 기존 파일 덮어쓰기 여부 (true/false) 기본값 : false
 5) preservelastmodified : 원본의 최종 수정 날짜 유지 여부(true/false) 기본값 : false
 6) includeEmptyDirs : 텅빈 디렉토리도 복사할지의 여부(true/false) 기본값 : true
 사용 예)
 <copy file="${workspace}/readme.txt.200312" tofile="${build}/readme.txt"/>
 <copy file="${workspace}/readme.txt.200312" todir="${build}"/>
 <copy todir="${build}/src">
  <fileset dir="${workspace}/src"/>
 </copy>
 
# mkdir
 사용 예)
 <mkdir dir="${build}/webapp/WEB-INF/classes"/>
 webapp/WEB-INF 또한 존재 하지 않는 경우 생성

# delete 
 사용 예)
 <delete>
  <fileset dir="${build}"/>
 </delete>
 
 위의 경우 ${build} 와 그 하위 디렉토리의 모든 파일을 삭제. 그러나 디렉토리는 남아있음.(fileset 은 파일의 집합)
 아래와 같이 해주면 디렉토리도 전부 삭제
 
 <delete includeEmptyDirs="true">
  <fileset dir="${build}"/>
 </delete>
 
# ant : 또 다른 빌드 파일의 실행. 여러개의 서브 프로젝트로 구성되어 있을 경우 유용
 1) antfile : 사용할 빌드 파일을 지정. 명시하지 않을 경우 build.xml. dir 속성에 주어진 디렉토리에 대해 상대경로
 2) idr : 새로운 Ant 프로젝트의 basedir을 지정.
 3) target : 수행할 타켓을 지정
 4) output : 새로운 Ant 프로젝트의 수행 결과를 저장할 파일을 명시
 5) inheritAll : 새로운 Ant 프로젝트에 현재 Ant 프로젝트의 모든 프로퍼티 전달 여부(true/false). 기본값 : true
 6) inheritRefs : 새로운 Ant 프로젝트에 현재 Ant 프로젝트의 모든 참조 전달 여부(true/false). 기본값 : true
 사용예)
 <target name="makeSubProject">
  <ant dir="subproject/logging" target="prepare">
   <property name="module1.4" value="jdk1.4"/>
  </ant>
  <ant dir="subproject/common" target="prepare"/>
 </target>

# java
 1) classname : 실행할 클래스 이름 (classname, jar 둘중 하나 필수)
 2) jar : 실행할 jar 파일의 위치 (classname, jar 둘중 하나 필수)
 3) classpath : 사용할 클래스패스를 지정
 4) classpathref : 미리 지정한 path 태그를 참조
 5) fork : 세러은 가상머신에서 클래스 수행 여부 (true/false). 기본값 : false
 6) maxmemory : 포크된 가상 머신에 할당할 메모리의 최대 크기를 지정 (fork가 false인 경우 무시)
 7) dir : 가상 머신을 호출할 디렉토리 (fork가 false인 경우 무시)
 사용 예)
 <java classname="javacan.main.prepare.TableInitilizer">
  <classpath>
   <pathelement path="${java.class.path}"/>
  </classpath>
  <sysproperty key="module" value="test"/>
  <arg value="-init -d"/>
 </java>
 
# native2ascii : 유니코드로의 변환
 1) src : 변환할 파일들이 위치한 기준 디렉토리
 2) dest : 변환한 결과를 저장할 디렉토리
 3) encoding : 변환할 파일의 인코딩 (기본으로 JVM의 기본 인코딩 사용)
 4) reverse : 이스케이프된 유니코드를 지정한 인코딩을 사용하는 문자열로 변환.
 사용 예)
 <native2ascii src="${config}"
  dest="${build}/config"
  includes="**/*.properties"
  excludes="**/test/*.properties"
  encoding="EUC-KR"/>

이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법

개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2

이번에는 자바에서 자주 사용하는 Ant 툴에 대해서 알아
보도록 하겠습니다이클립스에서는 외부 확장 툴로서
제공하고 있습니다.

먼저 파일을 생성하기 전에 xml 파일이 Ant 에디터와
연결이 되어있는지 환경설정을 찾아가 봅니다.
현재 제 이클립스는 Android 가 기본 에디터로
잡고 있네요. Ant Editor 를 선택하고 오른쪽에 있는
Default 버튼을 눌러 기본 xml 에디터로 만듭니다.

이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 1부

build.xml 파일을 하나 생성합니다.
그럼 파일에 아이콘이 개미로 되어있을 겁니다.
Ant Editor 가 기본으로 연결되었다는 표시입니다.
Open With 를 열어봐도 기본으로 셋팅된 것을 확인할수
있을 겁니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 1부


이렇게 Ant Editor 로 열어야 하는 이유는 xml 소스
생성을 위한 템플릿을 이용하기 위함입니다.
Build.xml 파일을 클릭해서 editor 엽니다그리고
상단에 ct + space 를 눌러보세요그럼 인텔리젼스
기능이 작동되어서 창이 하나 뜨게 될겁니다.
첫번째 Buildfile template 를 선택하면 바로옆에 창에서
미리보기로 볼수 있듯이 소스가 자동으로 생성됩니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 1부


기본 소스가 만들어졌습니다.
이것이 제대로 동작하는지 실행해 보도록 하겠습니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 1부


Build.xml 파일을 선택하고 오른마우스를 클릭합니다.
그리고 Run As > Ant Build 실행합니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 1부


콘솔에실행한 결과가 나오네요아무 문제없이
실행을 마쳤습니다링크를 클릭하게 되면 build.xml 
소스 위치로 갈수 있습니다만약 문제가 있는 경우
콘솔에 그 내용이 찍힐텐데 그럴때도 문제있는 소스로
바로갈수 있는 것이죠.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 1부


간단하게 소스를 추가하였습니다그리고 기본 태그들에 대한
설명을 하도록 하겠습니다추가한 소스는 아래와 같습니다.
첫번째 <target> 태그는 project  default 속성값을 참조하게
됩니다. <target>  name 속성값이 어디에도 없다면
<target> 아래 <echo> 는 실행이 되지 않을겁니다.
두번째 <target> 은 첫번째 <target> 이 실행되고 다음 실행이
되는데 이 두개의 의존관계는 depends 속성값으로 연결이
되어 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<project name="HellowSample" default="default">
    <description>description</description>
    <property name="HelloText" value="Hello"/>
    <property name="WorldText" value="World"/>
 
    <target name="default" depends="depends" description="description">
        <echo>${HelloText}</echo>
    </target>
 
    <!-- target: depends -->
    <target name="depends">
        <echo>${WorldText}</echo>
    </target>
</project>

이렇게 <target> 으로 연결되어서 차례대로 xml 
단계별로 수행이 되는 것입니다그 수행 결과는
아래와 같습니다. <echo> 가 연결순서에 따라
실행된 것을 볼수 있습니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 1부

Xml 파일을 선택하고 오른마우스를 클릭합니다.
그리고 Run As > Ant Build… 선택합니다.
그러면 Ant Build 파일의 환경설정창이 나오게 됩니다.

이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

빌드 설정창이 나오게 되는데 이전에 소스는
Target 이 두개 입니다기본값은 하나로 설정이
되어있습니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

Xml 소스는 다음과 같은데 depends 로 연결되어 있기
때문에 target 두개를 수행하게 됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<project name="HellowSample" default="default">
    <description>description</description>
       <property name="HelloText" value="Hello"/>
       <property name="WorldText" value="World"/>

    <target name="default" depends="depends" description="description">
        <echo>${HelloText}</echo>
    </target>

    <!-- target: depends -->
    <target name="depends">
        <echo>${WorldText}</echo>
    </target>
</project>

결과는 아래과 같이 나오게 됩니다.

이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

그런데 Ant Build.. 설정창에서 두개의 Target 을 모두
체크하면 아래와 같은 결과가 나옵니다이말은 <target>
당 하나씩 수행이 가능하다는 말입니다.
그래서 설정창에는 이런 <target> 을 기준으로 어떤것들을
수행할지 결정하고 빌드를 할수 있는 것입니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

이런 <target> 의 설정 순서도 바꿀수가 있습니다.
아래 Order 버튼을 클릭해서 타켓순서를 바꿀수 있는
대화상자를 띄웁니다그리고 아래위로 설정을 조절하시면 됩니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

이렇게 설정한 Ant 정보를 저장하고 수행할수 있는
기능이 있습니다. External Tools Configurations.. 입니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

이곳은 외부툴을 사용하는 프레임웍들을 설정할수 있는
창입니다왼쪽 Ant Build 메뉴밑에 지금까지 만들고
셋팅했던 xml 파일 들이 저장되게 됩니다.
처음부터 만들지 않고 이곳에서 만들어진 것을 복사해
사용하시면 편리 하겠죠.
Buildfile 란에 보시면 ${workspace_loc:/HellowSample/build.xml}
라고 되어있는데 workspace_loc: 에 프로젝트 명과 파일 경로를
넣으시면 어떤 파일도 추가가 가능합니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

External Tools Configurations.. 에서 설정이 완료 되었으면
아래에 Run 버튼을 클릭합니다그럼 빌드를 시작하게
됩니다.
이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부

빌드가 끝나게 되면 상단에 외부실행 아이콘을 클릭해 봅니다.
이것은 최근에 실행한 Ant 빌드 xml 이 나오게 되는데
다음부터는 Configuration 을 띄우서 Run 을 하는 것이 아니라
아이콘을 눌러 실행하시면 좀더 편리하겠죠.

이클립스(Eclipse) Ant 를 사용하여 프로젝트 빌드하기위한 기본적인 사용법 – 2부