본문으로 바로가기

Ant 빌드

category Devops 2020. 8. 29. 23:53
    반응형

    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를 통해서 실행할 어플리케이션을 선택할 수 있다.

    반응형