본문 바로가기

ANT/Ivy

[ANT] build.xml 간단 예제

간단한 예제


<?xml version="1.0" encoding="euc-kr"?>
<project default="main" basedir=".">


<!--property setting-->
<property name="name" value="ex"/>
<property name="version" value="1.0"/>
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.file" value="${build.dir}/${name}.jar"/>
<property name="dist.dir" value="dist"/>
<property name="dist.file" value="${dist.dir}/${name}-${version}"/>


--> 사용할 값들을 프로퍼티로 지정하여 사용하고 있다.


<!--compile target-->
<target name="compile">
 <mkdir dir="${build.dir}"/>
 <mkdir dir="${classes.dir}"/>
 <javac
  srcdir="${src.dir}"
  destdir="${classes.dir}">
 </javac>
</target>


--> 컴파일 타켓으로 build.dir과 classes.dir 디렉토리를 생성하고 scr.dir에 있는 java파일을 컴파일하여 classes.dir 에 생성한다


<!--jars target-->
<target name="jars" depends="compile">
 <jar
  jarfile="${jar.file}"
  basedir="${classes.dir}">
 </jar>
</target>

--jar타겟으로 jarfile명과 경로은는 프로퍼티에서 지정한 jar.file의 value값으로 하고

jar로 묶일 대상 클래스파일들은 classes.dir에 있는 클래스 파일들로 지정한다.


<!--distrobution target-->
<target name="dist" depends="jars">
 <mkdir dir="${dist.dir}"/>
 <zip
  destfile="${dist.file}.zip"
  basedir="${build.dir}"
  includes="*.jar"
 />
</target>

--> dist 타겟. 배포버젼 만들기로서 dist.dir 디렉토리를 생성 후 파일 이름은 dist.file 프로퍼티의 벨류값을 참조한다. build.dir디렉토리 아래 있는 모든 jar파일을 포함한다.


<!--main target-->
<target name="main" depends="jars"/>


--> 사용자가 타케을 지정하지 않은경우 (ant 실행시) 기본값으로 지정되는 타켓이다.


<!--clean target-->
<target name="clean">
 <delete dir="${build.dir}"/>
 <delete dir="${dist.dir}"/>
</target>

--> 이전의 컴파일한 클래스 파일과 배포본을 삭제하기 위한 타겟


<!--all target-->
<target name="all" depends="clean, dist"/>

--> ant all이라고 실행을 하게 되면 이 타겟은 clean과 dist에 의존하고 있으므로 최초 clean타겟이 실행되며, 그 후 dist 타겟이 실행되는데 dist는 jars에 의존되어있고 jars는 컴파일에 의존되어 있으므로 그것들이 다 실행 후에 dist 타겟이 완료되게 된다.


</project>