BLOG main image
정민군's Blog
miniya devlog

BUILD.XML 작성

System/Server 2006. 10. 17. 21:18 by 정민군

build.xml의 구성

by kkaok
2003-06-02


Ant의 빌드파일은 확장자를 보면 알 수 있듯이 xml이다. 따라서 빌드파일의 최상단에는 xml의 정의해야 한다. 전체 구성은 <project>로 시작해서 </project>로 끝나고 그 안에 하나 이상의 target, Properties, path 등이 삽입된다.


xml 정의

<?xml version="1.0" encoding="euc-kr"?>


project
project는 name, default, basedir 세가지 속성을 가진다.

name은 프로젝트명이고 default는 실행타겟이 지정되지 않았을 때 기본적으로 실행되는 타겟명을 적는다. basedir은 처리되는 디렉토리 명으로 build.xml이 상위 폴더 아래 있다면 생략 가능하며 basedir="." 이런 식으로 적어 주면 된다.

<project name="kkaok" default="deploy">
...
</project>


Properties
프라퍼티는, 이름(name)과 값(value)을 한쌍으로 가지며. 이름은 대·소문자를 구별한다. 프라퍼티의 이름은 다른 곳에서 "${프라퍼티명}"으로 사용이 가능하다.

<property name="catalina.home" value="C:/Tomcat 4.1"/>
<property name="deploy.home" value="C:/kkaok_project/kr.pe.kkaok.board"/>


path, classpath
path와 clsaspath는 다음과 같은 형식을 가진다.

<classpath>
   <pathelement path="${classpath}"/>
   <pathelement location="lib/helper.jar"/>
</classpath>


내부요소(pathelement)로 path와 location이 있으며 path는 보통 이미 정의된 경로와 함께 사용할 때 사용되어지고 location은 단일한 파일을 설정하거나 디렉토리를 설정할 때 사용된다. 이외에 DirSets, FileSets, FileLists는, 내부에 <dirset>, <fileset>,<filelist> 요소로 지정할 수 있다.

<path id="compile.classpath">
   <pathelement location="${catalina.home}/common/classes"/>
   <fileset dir="${catalina.home}/common/lib">
       <include name="*.jar"/>
   </fileset>
   <fileset dir="lib">
       <include name="*.jar"/>
   </fileset>
</path>

target
target은 name, depends, if, unless, description 다섯 개의 속성을 가지며 다른 여러 타겟에 의존할 수 있다. 이것은 해당 타겟을 실행시키면 depends 된 여러 타겟을 함께 실행시킨다는 것이다.


depends : 이 타겟이 의존하는 타겟의 이름들.
if : 이 타겟을 실행하기 위해 설정되어야만 하는 프로퍼티의 이름.
unless : 이 타겟을 실행하기 위해서 설정되어선 안 되는 프로퍼티의 이름.
description : 이 타겟에 대한 설명.


실행 순서
<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C,B,A"/>
만약 위와 같이 타겟들이 서로 의존하고 있 D를 실행시킨다면

PROMPT>ant D

A,B,C,D 순으로 실행이 된다.


만약 명령창에서 그냥 ant만 하게 되면 project의 default로 정의된 타겟을 실행 시킨다. 위에서 A를 실행시키고 싶다면 아래처럼 하면 된다.

PROMPT> ant A

즉 여러개 실행 타겟 만들고 선별해서 실행 시킬 수 있다는 것이다. 너무나도 편리한 ant~~~


http://www.kkaok.pe.kr/


카테고리

분류 전체보기 (46)
Technic (5)
Language (16)
Database (8)
System (5)
Algorithm (1)
Design (1)
Tool (3)
Framework (2)
Network (1)
Utility (1)
SmartPhone (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

글 보관함