반응형
Spring 개발을 시작하면서 Maven을 접하다보니 Ant를 사용할 일은 없었다. 최근 공부하는 Spring 샘플 소스가 Ant 프로젝트로 되어있어서 Ant 빌드가 무엇인지 공부해보았다. 레거시한 것들도 공부를 해보면 기술 진화의 히스토리를 알 수 있고 왜 기술이 그런 방향으로 진화했는지 알 수 있다.
Ant
개발 및 배포를 위한 일련의 과정을 자동으로 해주는 빌드툴이다. Maven의 경우 빌드 + @(의존성..)가 있어서 주로 Maven을 많이 사용한다.
Ant 설정
아래 XML 파일의 Ant 설정 파일이다. 경로설정 및 컴파일 작업 war배포까지 개발자가 수작업으로 해야할 것들을 XML 정의를 통해서 자동화 할 수 있다.
<?xml version="1.0"?>
<project name="1-1" basedir="." default="run.sample1">
<property name="src.dir" value="src"/>
<property name="lib.dir" value="lib"/>
<property name="classes.dir" value="classes"/>
<path id="classpath">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>
<target name="init" description="작업디렉토리를 초기화합니다.">
<delete dir="${classes.dir}"/>
<mkdir dir="${classes.dir}"/>
</target>
<target name="compile" depends="init" description="컴파일합니다">
<javac destdir="${classes.dir}" debug="on" debuglevel="lines, vars, source"
includeantruntime="false">
<src path="${src.dir}"/>
<classpath refid="classpath"/>
</javac>
<copy todir="${classes.dir}">
<fileset dir="${src.dir}">
<include name="**/*.xml" />
</fileset>
</copy>
</target>
<target name="run.sample1" depends="compile" description="어플리케이션을 기동합니다.">
<java classname="sample1.HelloApp" classpath="${classes.dir}" classpathref="classpath" fork="true"></java>
</target>
<target name="run.sample2" depends="compile" description="어플리케이션을 기동합니다.">
<java classname="sample2.HelloApp" classpath="${classes.dir}" classpathref="classpath" fork="true"></java>
</target>
<target name="run.sample3" depends="compile" description="어플리케이션을 기동합니다.">
<java classname="sample3.HelloApp" classpath="${classes.dir}" classpathref="classpath" fork="true"></java>
</target>
</project>
이클립스 Ant
target은 실행할 어플리케이션을 의미하며 이클립스 Outline UI를 통해서 실행할 어플리케이션을 선택할 수 있다.
반응형