ant 사용법

|
아래 내용은 
고수로 가는 지름길! Jakarta Project
이클립스 기반 프로젝트 필수 유틸리티: CVS, Ant, JUnit
두 책의 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"/>

사용 예제 ) 

[출처] ANT 사용법|작성자 용쓰

----------------------------------

 

<<Ant의 주요 태스크>>

http://ant.apacne.org/manual/index.html

하나의 target내에 있는 태스크는 순차적으로 수행되며, 오직 그 타겟이 수행될 때에만 실행된다.

 

1. javac: 자바 소스 코드 컴파일

<javac srcdir=소스 코드가 위치한 디렉토리

       destdir=컴파일한 클래스가 위치한 디렉토리

       classpath=클래스패스>

…….

</javac>

 

[javac 태스크가 제공하는 속성]

속성

설명

필수

srcdir

소스가 위치한 디렉토리를 지정

<src>요소가 사용되지 않은 경우 필수

destdir

생성된 클래스가 위치할 디렉토리를 지정

 

includes

컴파일할 파일의 패턴 목록, 기본값 *.java

 

classpath

컴파일할 때 사용할 클래스패스.

,<classpath>태그를 사용하여 지정가능

 

classpathref

<path>로 지정한 경로를 클래스패스로 참조

 

debug

디버그 정보 포함, 기본값 false

 

optimize

최적화 사용, 기본값 false

 

verbose

긴 결과 제공

 

failonerror

오류가 발생하면 빌드 중지, 기본값 true

 

encoding

소스 파일의 인코딩을 지정

javac의 encoding 옵션과 동일

 

nowarn

on을 값으로 가질 경우 컴파일할 때 nowarn 옵션을 사용. 기본값은 off

 

deprecation

on을 값으로 가질 경우 deprecation 옵션을 컴파일할 때에 사용, 기본값은 off

 

 

2. jar: JAR 파일로 압축

destfiel 속성은 생성할 JAR 파일을 지정

basedir 속성은 jar파일로 압축할 기본 디렉토리 지정

includes, includesfile, excludes, excludesfile, defualtexcludes 속성 사용

<jar destfile=${dist}/lib/app.jar  basedir=${build}/classes />

 

3. zip : ZIP 파일로 압축

includes, includesfile, excludes, excludesfile, 속성 사용

<zipfileset>은 압축되는 파일의 경로명을 변경 가능

속성

설명

필수

prefix

ZIP 파일에 압축될 때 변경되어 들어갈 경로명

 

fullpath

특정 파일의 변경될 경로를 지정

 

filemode

유닉스 기반의 시스템에서 사용되며, 압축되는 파일의 모드를 지정. 기본값은 644

 

dirmode

유닉스 기반의 시스템에서 압축되는 디렉토리의 모드를 지정. 기본값은 755

 

 

4. war : 웹 어플리케이션 압축

basdir 속성을 사용하여 해당 디렉토리를 WAR파일로 묶는다.

lib 태그 지정한 파일들을 WEB-INF/lib 디렉토리에 위치하게 해준다.

classes 태그는 지정한 디렉토리에 위치한 classes 파일들을 WEB-INF/classes디렉토리에 위치하게 해준다.

webxml 속성은 지정한 파일을 WEB-INF/web.xml 파일로 복사한다

includes, includesfile, excludes, excludesfile, defualtexcludes 속성 사용

파일을 묶을 때 파일의 경로를 변겨해주는 zipfileset 태그 사용 가능

<war destfile=main.war webxml=src/metadata/web.xml>

   <fileset dir=src/mainapp/html />

   <fileset dir=src/mainapp/j네 />

   <lib dir=lib>

      <exclude name=logging2.jar/>

   </lib>

   <classes dir=build/main/classes/>

   <zipfileset dir=src/imagefile/images prefix=images/>

</war>

 

5. tar : TAR 파일의 생성

basedir속성이나 <fileset> 태그 등을 사용하여 묶을 파일의 목록을 지정

compression 속성을 사용하여 우너하는 방식으로 압축가능, gzipbzip2,none값 지정

tarfileset 태그는 파일을 묶을 때 파일의 경로를 변경해 주며, 파일에 대한 사용자 및 그룹을 지정할 수도 있다.

<tar destfile=${dist}/example.tar.gz basedir=${build} compression=gzip/>

 

[tarfileset 태그가 제공하는 속성]

속성

설명

필수

mode

3자리 8진수값

 

useranme

파일에 대한 사용자 이름을 지정, UID와는 다름

 

group

파일에 대한 그룹 이르을 지정, GID와는 다름

 

prefix

ZIP 파일에 압축될 때 변경되어 들어갈 경로명

 

fullpath

특정 파일의 변경될 경로를 지정

 

preserveLeadingSlashes

맨 앞의 /를 유지할지의 여부를 지정, 기본값은 false

 

 

6. javadoc : API 문서의 생성

소스 코드로부터 Javadoc API문서를 생성

옵션이 너무 많아서 생략^^;

 

7. copy : 파일 복사

지정한 디렉토리로 파일을 복사

개개의 파일을 복사할 수도 있고 디렉토리 단위로 복사할 수도 있다.

<copy todir=${build}/src>

   <fileset dir=${workspace}/src/>

</copy>

 

[copy 태스크에서 자주 사용되는 속성]

속성

설명

필수

file

복사할 파일을 지정

<fileset>으로 복사할 파일 목록을 지정하지 않은 경우 필수

tofile

복사될 파일을 지정

 

todir

원본을 복사할 디렉토리 지정

overwrite

true인경우 기존에 존재하는 파일을 덮어 쓴다. 기본값 false

 

preservelastmodified

True인 경우 원본의 최종 수정 날짜를 유지. 기본값은 false

 

includeEmptyDirs

<fileset>으로 지정한 디렉토리 중 텅빈 디렉토리도 복사할지의 여부를 지정, 기본값은 true

 

failonerror

파일이 없을 경우 빌드 중단, 기본값 true

 

verbose

복사한 파일 목록, 기본값 false

 

 

8. mkdir : 디렉토리의 생성

<mkdir dir=${build}/webapp/WEB-INF/classes />

 

9. delete : 파일의 삭제

file 속성 -  특정 파일을 삭제하기 위해 지정

dir 속성 -  지정 디렉토리 및 그 하위 디렉토리까지 모두 삭제

includes, includesfile, excludes, excludesfile, defualtexcludes 속성 사용

<fileset> 태그를 사용하여 삭제할 파일의 집합 표시 가능 (단 파일만 삭제될 뿐 디렉토리는 삭제되지 않는다)

includeEmptyDirs 속성 - true로 지정하면 텅빈 디렉토리까지 삭제

failonerror 속성  오류시 빌드 중단, 기본값 true

verbose속성  삭제할 파일 목록, 기본값 false

 

10. ant : 또 다른 빌드 파일의 실행

하나의 프로젝트가 여러 개의 서브 프로젝트로 구성되어 있는 경우 한번에 서브 프로젝트를 포함한 모든 프로젝트를 빌드함

[ant 태스크의 속성]

속성

설명

필수

antfile

사용할 빌드 파일을 지정, 명시하지 않을 경우 build.xml파일 사용, dir 속성에 주어진 디렉토리에 대해 상대 경로로 명시해야 함

 

dir

새로운 Ant 프로젝트의 basedir을 지정, 사용될 빌드 파일에서 basedir 속성을 지정하고 있다면 무시됨

 

target

수행할 타겟을 지정

 

output

새로운 Ant 프로젝트의 수행 결과를 저장할 파일을 지정

 

inheritAll

기본값 true이며 새로운 Ant 프로젝트는 현재Ant 프로젝트의 모든 프로퍼티를 전달받는다.

 

inheritRefs

기본값 true이며 새로운 Ant 프로젝트는 현재 Ant 프로젝트의 모든 참조를 전달받는다.

 

 

11. java : 자바 실행

[java 태스크가 제공하는 속성의 목록]

속성

설명

필수

classname

실행할 클래스 이름

둘 중 하나 필수

jar

실행할 jar 파일의 위치

classpath

사용할 클래스 패스를 지정

 

classpathref

미리 지정한 <path>요소를 참조

 

fork

true인경우 새로운 가상 머신에서 클래스를 수행, 기본값은 false

 

maxmemory

포크된 가상 머신에 할당할 메모리의 최대 크기를 지정 (fork가 false인 경우 무시)

 

dir

가상 머신을 호출할 디렉토리(fork가 false인 경우 무시)

 

output

결과 파일

 

append

기본 파일에 연결하거나 겹쳐씀

 

 

<java classname=Add classpath=${basedir}/bin>

   <arg value=100/>

   <arg value=200/>

</java>

 

12. native2ascii : 유니코드로의 변환..

ResourceBundle 클래스나 Properties 클래스를 사용하여 프로퍼티 파일로부터 정보를 읽어올 때 파일에 있는 문자를 유니코드로 변환해준다.

Src 속성은 변환할 파일들의 위치한 기준 디렉토리를 지정

Dest 속성은 변환한 결과를 저장할 디렉토리

includes, includesfile, excludes, excludesfile, defualtexcludes 속성 사용

<include>,<exclude>태그를 사용하여 원하는 파일만 변환처리 가능

encoding속성은 변환할 파일의 인코딩 지정(명시하지 않을 경우 JVM 기본 인코딩 사용)

reverse 옵션은 이스케이프된 유니코드를 지정한 인코딩을 사용하는 문자열로 변환

 

13. buildnumber : 빌드 번호

파일에서 빌드 번호를 읽고 build.number를 설정한 다음 build.number+1의 값을 파일에 기록

<buildnumber file=buildnum.txt/>

 

14. echo

System.out(기본값), 파일, 로그, 수신기에 메시지를 기록

속성

설명

필수

message

기록할 텍스트

텍스트를 요소 컨텐츠로 사용하지 않을 경우 필수

file

결과 파일

선택

append

파일을 겹쳐 쓰지 않고 연결, 기본값 false

 

 

<echo message=Hello/>

<echo> This is a message from Ant </echo>

 

15 tstamp

DSTAMP, TSTAMP, TODAY 프로퍼티를 설정

DSTAMP : yyyyMMdd

TSTAMP : hhmm

TODAY : MMM dd yyy

cf. <format>은 Java의 SimpleDateFormat 클래스에서 정의한 패턴을 사용해 현식을 변경하는데 쓰인다.

'개발/활용정보 > Java' 카테고리의 다른 글

Eclipse Memory Analyzer  (0) 2011.11.28
재귀형 퀵소트..소스..자바..  (0) 2011.05.11
Ant 태스크  (0) 2011.04.19
Creating a Custom Event  (0) 2011.04.19
eclipse 단축키  (0) 2011.04.13
And