2009년 8월 20일 목요일

Flex + BlazeDS + Java 웹프로젝트용 Ant Build.xml

Eclipse + Flex Builder로 개발한 웹애플리케이션을 WAR로 export하면 Flex 소스코드까지 그대로 묶여서 들어간다.
그래서, Flex나 Java 코드는 다시 compile하지 않고 웹애플리케이션으로 deploy할 때 꼭 필요한 컴파일된 파일들과 리소스 파일들을 별도의 디렉토리에 복사해 WAR로 묶은 다음 지정된 위치로 복사해 주는 기능이다.
사실 그냥 WAR로 묶어도 별 문제는 없을 것 같지만 혹시나 소스가 공개될 수도 있고, Flex 소스가 다 들어가면 WAR 파일이 너무 커져서 만들어 봤다.

 <!-- 현재 프로젝트의 컴파일된 코드를 WAR로 묶어 webapp.dir 속성에 지정된 디렉토리에 복사 . 추가로 컴파일은 하지 않음 -->
<project name="MyWebApp" basedir="." default="deploy">

    <!-- Directory to deploy the generated WAR file -->
    <property name="webapp.dir" value="C:/apache-tomcat-5.5.26/webapps" />
   
    <property name="web.app.name" value="FLEXAPP" />
    <property name="package.name" value="${web.app.name}.war" />
    <property name="dest.dir" value="target" />
    
    <property name="flex.file.dir" value="bin-debug"/>
    <property name="web.content.dir" value="WebContent"/>

    <target name="prepare">
        <mkdir dir="${dest.dir}" />
    </target>

    <target name="package" depends="prepare">
      <echo>Packaging...</echo>
     
      <!-- copy Flex and Java Web files -->
      <copy todir="${dest.dir}" overwrite="false">
        <fileset dir="${flex.file.dir}"/>
        <fileset dir="${web.content.dir}"/>
      </copy>
        
      <!-- package war file -->
      <war destfile="${dest.dir}/${package.name}"
              webxml="${dest.dir}/WEB-INF/web.xml"
              basedir="${dest.dir}"/>
    </target>

    <!-- deploy the generated war file -->
    <target name="deploy" depends="package">
      <echo>Deploying...</echo>
      <copy file="${dest.dir}/${package.name}"
              tofile="${webapp.dir}/${package.name}"
              overwrite="true" />
      <delete file="${dest.dir}/${package.name}" />
    </target>

</project>


댓글 없음:

댓글 쓰기