'앤트'에 해당되는 글 1건

  1. 2013.08.26 Ant 를 이용한 빌드 by 즐건세상

Ant 를 이용한 빌드

IT/ASLC 2013. 8. 26. 15:44

1.젠킨스(jenkins) Overview

2.젠킨스(jenkins) 설치

3. 샘플 프로젝트

4. Ant 를 이용한 빌드

5. 젠킨스(jenkins) 시작

샘플 프로젝트를 빌드하고자 한다.

빌드를 하는 가장 간단한 방법은 명령줄(command line)에서 빌드하는 것이다. 

명령줄 빌드

명령줄에서 샘플 프로젝트를 빌드하는 방법은 아래와 같다.



-classpath 컴파일 옵셥은 참조하는 라이브러리 jar 파일들의 목록이 된다. 유닉스에서는 구분자가 세미콜론(:)이 된다.

-d 옵션은 .java 파일들을 빌들한 결과로 나온 클래스 파일들이 저장될 경로가 된다.


Ant를 이용한 빌드

명령줄 빌드는 빌드를 자주 실행할 수가 없다. 빌드를 한번 실행해보기 위해서는 너무 많은 노력이 들어가게 된다. 뭔가 잘못입력한다면 빌드 스크립트를 처음부터 다시 입력해야 한다. Ant를 이용하면 보다 쉽게, 자주 빌드를 실행 할 수가 있다.

Ant를 이용한 빌드 스크립트 작성하기

□  프로젝트 정의하기

<?xml version="1.0" encoding="UTF-8"?>
<project name="LectureService" default="compile" basedir=".">

□  재료 정의하기

프로젝트 디렉토리에 프로퍼티를 정의하여 앤트에 프로젝트 디렉토리 구조를 알려준다.

<property name="build.dir" location="bin"></property>
<property name="build.prod.dir" location="${build.dir}/prod"></property>
<property name="build.test.dir" location="${build.dir}/test"></property>
<property name="src.dir" location="src"></property>
<property name="test.dir" location="test"></property>
<property name="lib.dir" location="lib"></property>
<property name="test.reports" location="testReports"></property>

프로젝트 경로는 상대경로로 지정하여 경로가 변경되더라도 수정없이 사용할 수 있도록 한다.

□  클래스 패스 정의하기

pathelement 엘리먼트에 빌드 디렉토리 두 개를 추가해서 자바 컴파일러가 모든 클래스 파일들을 찾아낼 수 있게 한다.

fileset 엘리먼트에 필요한 라이브러리가 들어 있는 경로를 추가한다.

<path id="project.classpath">
    <pathelement location="${build.prod.dir}"></pathelement>
    <pathelement location="${build.test.dir}"></pathelement>
    <fileset dir="${lib.dir}">
        <include name="*.jar"></include>
    </fileset>
</path>

컴파일 작성하기

target의 실행 순서를 지정 할 수 있다. depends 속성의 값을 prepare 타깃을 실행한 다음 compile 타깃을 실행하게 설정 할 수 있다.

<target name="prepare">
        <mkdir dir="${build.prod.dir}"></mkdir>
        <mkdir dir="${build.test.dir}"></mkdir>
        <mkdir dir="${test.reports}"></mkdir>
</target>


<target name="compile" depends="prepare">
    <javac srcdir="${src.dir}" destdir="${build.prod.dir}">
        <classpath refid="project.classpath"></classpath>
    </javac>
</target>

prepare 타깃을 실행하고 나면 <javac 타스크를 실행하게 된다. 자바 컴파일러는 srcdir 속성의 값이 가리키는 폴더의 소스코드들을 컴파일하고, 생성된 클래스 파일들을 destdir 속성의 값에 해당하는 경로에 저장한다. classpath는 앞에서 정의한 값을 재사용 할 수 있다.


junit 스크립트 작성하기

지금까지 컴파일 타깃을 작성하는 것에 대해서 살펴 봤고, 이번에는 junit 스크립트를 작성하는 방법에 대해서 알아보고자 한다.

컴파일 순서를 compile-tests 를 먼저 실행하고 test 타깃을 수행한다.

junit  haltonfailure 속성을 true로 설정하면 테스트가 하나라도 실패하면 빌드가 실패하도록 한다.

classpath는 앞에서 정의한 클래스 패스를 재사용 한다.

테스트 결과보고를 어떻게 보여주느냐에 대한 설정으로 formatter 엘리먼트를 이용한다. formatter 엘리먼트의 type 속성의 값은 brief, plain, xml로 설정 할 수 있다.

brief : 실행되는 테스트 케이스의 이름과 통계, 세부 정보들을 테스트가 실패할 때만 출력할 경우 사용

plain : brief 보다 더 많은 정보를 출력 할 경우 사용

xml : 출력 결과를 xml 형식으로 출력 할 경우 사용

usefile 속성 값을 false로 정의하면 테스트 결과를 파일에 출력하지 않고 화면에 출력한다.

batchtest 태스크 안에 fileset 엘리먼트를 이용해서 작성된 테스트 케이스를 한꺼번에 실행 할 수 있다.

batchtest 엘리먼트의 todir 속성의 값으로 테스트 실행결과 파일이 생성될 위치 경로를 지정 할 수 있다.

앞에서 정의 한 <formatter 엘리먼트의 형식으로 리포트가 생성된다.

<target name="test" depends="compile-tests">
        <junit haltonfailure="true">
            <classpath refid="project.classpath"></classpath>
            <formatter type="xml"></formatter>
            <formatter type="brief" usefile="false"/>
            <batchtest todir="${test.reports}">
                <fileset dir="${build.test.dir}" includes="**/*Test.class"></fileset>
            </batchtest>
            <sysproperty key="doc.dir" value="${doc.dir}"></sysproperty>
            <sysproperty key="index.dir" value="${index.dir}"></sysproperty>
        </junit>       
    </target>

ant 실행하기

명령줄에서 실행할 때는 다음과 같이 실행 할 수 있다.



이클립스 플러그인을 이용해서 ant 실행하기

이클립스 ant view 실행하기

Windows - Show View - ant view 실행



처음 Ant view 를 실행하면 아무것도 보이지 않는다.  위 그림에서 1번 사각형의 아이콘을 클릭해서 build.xml을 추가해 주면 된다.

Ant view 에서는 빌드 스크립트에 정의 되어 있는 target 을 볼 수 있다. 타겟을 선택한 다음 2번 사각형의 아이콘을 클릭하면 타깃을 실행 할 수 있다.


완성된 빌드 파일을 첨부했다.

build.xml




Posted by 즐건세상
l