이클립스를 많이 사용하신다면 ant build를 사용합니다. 이클립스에서 export 받는 것도 방법이 있지만 ant build를 이용하면 쉽게 관리할 수 있습니다. 우선 마켓에서 plugin 을 다운 받아 설치하세요
설치를 완료했다면 ant 스크립트를 작성해보겠습니다.
기본 형식은 xml과 동일합니다.
생성했다면 다음과 같이 property를 설정합니다. 아래 보는 것처럼 property을 세분화하였습니다. 목적은 이후 사용할 때 나름 유연하게 사용하고자 하는 마음에 java, tomcat, build 관련으로 나누었습니다.
<property environment="env"/>
<property file="build.properties"/>
<property name="prod.name" value="test"/>
<property name="prod.version" value="1.00.00"/>
<property name="base.dir" value="."/>
<property name="src.dir" value="src"/>
<property name="release.dir" value="release"/>
<property name="web.classes" value="WebContent/WEB-INF/classes"/>
<property name="web.lib" value="WebContent/WEB-INF/lib"/>
<property name="web.res" value="WebContent/res"/>
<property name="tomcat.dir" value="C:/Servers/apache-tomcat-7"/>
<property name="war.file" value="${prod.name}.war"/>
<property name="dist.dir" value="/resource/${prod.name}"/>
<property name="deploy.dir" value="/resource/pkg"/>
위 정보를 이용해 빌드 결과를 저장하는 target을 설정하겠습니다. 우선 이 전에 있던 정보를 삭제하도록 하겠습니다.
<target name="clean">
<delete dir="${dist.dir}" includes="**/*" quiet="true" />
</target>
삭제 완료 후 컴파일하도록 설정합니다.
<target name="compile" depends="clean">
<mkdir dir="${release.dir}" />
<javac
srcdir="${src.dir}" destdir="${release.dir}"
source="1.8" target="1.8" debug="true"
deprecation="off" listfiles="no" failonerror="true"
includeantruntime="no">
<classpath>
<pathelement path="${base.dir}"/>
<fileset dir="${web.lib}" includes="*.jar"/>
<fileset dir="${tomcat.dir}/lib" includes="*.jar"/>
</classpath>
</javac>
</target>
컴파일러는 java 1.8 기준으로 설정하였는데 컴파일러 설정 시 주의할 점은 java 1.8 이후부터 지원하는 문법이 코드에 있는지 체크하고 컴파일 버전을 설정하셔야 합니다. ant build의 에러 메시지가 친정하지 않기 때문에 유의하시기 바랍니다.
<target name="build" depends="compile">
<delete file="${war.file}"/>
<war destfile="${war.file}" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent" excludes="**/*.java"/>
<classes dir="${release.dir}">
<include name="**/*.class"/>
</classes>
<classes dir="${src.dir}">
<include name="**/*.xml"/>
</classes>
</war>
</target>
컴파일이 정상 완료되었다면 위 설정을 통해 컴파일한 코드를 패키지 파일로 생성합니다. 생성된 패키지는 다음 설정을 통해 지정한 경로로 복사하고 원본은 삭제합니다. 이렇게 한 이유는 ant build가 이클립스 프로젝트 상에 있기 때문에 빌드가 성공하면 이클립스 프로젝트에 패키지가 생성됩니다. 그래서와 같이 설정하여 생성 한 패키지를 복사하고 원본은 삭제하여 프로젝트에는 패키지가 없도록 관리합니다.
<target name="dist" depends="build">
<copy file="${dist.dir}/${war.file}" todir="${deploy.dir}"/>
<delete dir="${release.dir}" />
</target>
여기까지 설정한 ant build를 프로젝트를 생성할 때마다 등록하여 사용하고 있습니다. 이제는 사용에 익숙 해저 더 이상은 수정하지 않습니다.