2013년 11월 19일 화요일

아파치 ant 오픈소스 설치를 시작합니다

개발 환경을 리룩스에 구성하려 하다가, 결국 윈도우에 설치하게 되었습니다.
설치후 매번 다시 내용을 찾아야 하는 번거로움에 설치 내용을 기록하게 되었습니다.

먼저 ant 입니다.
java로 개발 하는 프로젝트에서 ant는 강력한 컴파일 툴로 사용할 수 있습니다.
물론 이클립스에는 기본적으로 포함되어 있기 때문에 별도로 설치하지 않아도 되지만,
콘솔로 프로젝트를 관리하는 경우도 종종 있기 때문에 ant 를 설치합니다.
개인적으로는 직접 하나씩 관리하는 방식을 더 선호하기 때문이기도 합니다.

매번 설치시에만 살펴 보기 때문에 기억하기가 쉽지 않아 많이 쓰는 기능만 추려서 구성해 보려 합니다. ( ant 기능은 manual 을 찾아 보면 정말로 많습니다. )

먼저 사이트 입니다. 다들 아시겠지만  http://ant.apache.org/ 에서 다운 받습니다.
다음은 zip 파일을 구동할 디렉토리에 압축을 해제합니다.

ANT_HOME 패스를 설정합니다.(패스를 전역에 등록해 놓지 않아도 사용할 수 있습니다.
다만 상당히 불편합니다.)

cmd 창에서 ant -version 을 입력하여 정상적으로 출력되면 설치가 된것으로 생각할 수 있습니다.

한글을 주석 등에서 사용하고 싶다면
encoding 항목을 설정하여야만 합니다.
예를 들어 xml 파일 형식이 ansi 라면 encoding="EUC-KR" 을 해 주셔야 합니다.
utf-8 을 사용하신 다면 파일형식도 uft-8로 저장되도록 해야 한글을 사용할 수 있습니다.

그래서 저는  아래와 같은 선언을 합니다.( 하지 않으셔도 됩니다. )

<?xml version="1.0" encoding="EUC-KR" ?>

project가 가장 큰 범주입니다. 이름과 처음시작할 기본 업무 위치 정보 등을 설정합니다.
다음은 property 인데 주로 소스의 위치 라이브러리의 위치 등이 될 것 같습니다.
프로젝트 마다 달라 질 수 있기 때문에 외부에 위치한 파일에서 불러 오도록 하면 ant 파일도
다시 사용이 가능하기 때문에 저는 그렇게 구성합니다.
아래는 아파치에서 가장 기본적인 예제로 제공하는 build.xm 파일을 약간 수정해 놓은
예제 입니다.

file 속성은 properties 를 로딩할 수 있기 때문에 key value 구성이 가능하고
프로젝트 위치나 라이브러리 위치를 프로퍼티 파일에 저장해 필요한 부분만 수정해
사용할 수 있습니다.


<?xml version="1.0" encoding="EUC-KR" ?>
<project name="testAntPjt" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <property file="app.properties"/>
  <property name="home" value="${app.home}"/>
  <property name="src" location="${home}/${app.src}"/>
  <property name="build" location="${home}/${app.build}"/>
  <property name="lib" location="${home}/${app.lib}"/>
  <property name="dist" location="${home}/${app.dist}"/>
  <property name="backup"  location="${app.backup}"/>

  <path id="compile.path">
<pathelement path="${classpass}"/>
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
<pathelement location="${build}"/>
  </path>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
<echo>${app.home}</echo>
<echo>${TSTAMP}</echo>
  </target>


  <target name="compile" depends="init"
        description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}" classpathref="compile.path" includeantruntime="false" encoding="euc-kr"/>
  </target>

  <target name="dist" depends="compile"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/testAntPjt_${DSTAMP}.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="test.ant.exec.TestExecutor"/>
</manifest>
</jar>
  </target>

  <target name="run" depends="init"
        description="run " >
    <!-- Compile the java code from ${src} into ${build} -->
    <java jar="${dist}/testAntPjt_${DSTAMP}.jar" classpathref="compile.path"  fork="true"/>
  </target>

  <target name="backup" depends="init"
        description="backup" >
    <!-- Compile the java code from ${src} into ${build} -->
    <jar jarfile="${backup}/fullBackup_${DSTAMP}.jar" basedir="${home}"/>
  </target>

  <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>










댓글 없음:

댓글 쓰기