반응형

이클립스를 많이 사용하신다면 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를 프로젝트를 생성할 때마다 등록하여 사용하고 있습니다. 이제는 사용에 익숙 해저 더 이상은 수정하지 않습니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기