BLOG main image
정민군's Blog
miniya devlog

'System/Server'에 해당되는 글 4건

  1. 2007.05.11 JEUS Menual
  2. 2006.10.17 ANT 설치
  3. 2006.10.17 BUILD.XML 작성

JEUS Menual

System/Server 2007. 5. 11. 10:09 by 정민군

ANT 설치

System/Server 2006. 10. 17. 21:21 by 정민군
Ant 다운로드 & 설치하기

Ant는 Apache Software Foundation의 프로젝트 가운데 하나이고, James Duncan Davidson가 Tomcat 소스를 빌드하기 위해서 개발했습니다. make와 유사하지만, ant는 XML 방식을 사용하고, 쉘 스크립트나 특정 플렛폼에서 사용하는 툴 대신에 범용적으로 사용할 수 있습니다.

간단한 Ant 설치하기

1. Ant 배포판을 다운 받고, /usr/local/ant 디렉토리에 압축을 풀어 놓습니다. 아래는 root 사용자로 이 과정을 수행한 예제입니다. Apache-Ant 배포판은 root 사용자의 홈 디렉토리(/root)에 다운로드 받은 상태라고 가정하겠습니다.

# cd /usr/local/
# tar jxf $HOME/apache-ant-1.5.4-bin.tar.bz2
# ln -s /usr/local/apache-ant-1.5.4/ ant


2. ANT_HOME 설정을 위해서 쉘 스크립트를 편집하고, PATH에 ant 실행 파일이 있는 디렉토리를 추가합니다. 이전 장에서 수행한 것처럼 /etc/profile.d 파일에 스크립트를 추가합니다.

ANT_HOME은 /usr/local/ant로
PATH에 ${ANT_HOME}/bin 디렉토리 추가
Note: $HOME을 환경 변수로 사용하는 방식은 리눅스의 표준 방식으로 이해하면 됩니다. echo $HOME 명령어를 실행하면, 해당 환경변수가 의미하는 내용을 콘솔에서 확인할 수 있습니다. 아래 예제를 확인해보십시오.

# echo $HOME
/home/rcleveng


java.sh


# /etc/profile.d/java.sh - Sets Java Environment

if [ -z "$JAVA_HOME" ]; then  
 if [ -e /etc/javaversion ]; then        
   javaver=`cat /etc/javaversion | head -1`  
 fi

 if [ -z $javaver ]; then      
   jdkpath=`ls -1 /usr/java/ | grep "$javaver" | head -1`      
   if [ "X$jdkpath" == "X" ]; then            
     jdkpath=`ls -1 /usr/java/ | head -1`        

   fi  
 else        
   jdkpath=`ls -1 /usr/java/ | head -1`  
 fi    
 export JAVA_HOME=/usr/java/$jdkpath    
 export ANT_HOME=/usr/local/ant
 export PATH=${PATH}:${JAVA_HOME}/bin:${ANT_HOME}/bin
fi


java.csh


# /etc/profile.d/java.csh - Sets Java Environment

if ( ! $?JAVA_HOME ) then    
 if ( -e /etc/javaversion ) then        
   set javaver = `cat /etc/javaversion | head -1 `
 endif if ( $?javaver ) then      
   set jdkpath = `ls -1 /usr/java/ | grep '$javaver' | head -1`      
    if ( $jdkpath == '' ) then            
     set jdkpath = `ls -1 /usr/java/ | head -1`
   endif  
 else        
   set jdkpath = `ls -1 /usr/java/ | head -1`    
 endif

 setenv JAVA_HOME /usr/java/$jdkpath  
 setenv ANT_HOME /usr/local/ant
 setenv PATH ${PATH}:${JAVA_HOME}/bin:{$ANT_HOME}/bin
endif



프로젝트 레이아웃

프로젝트 레이아웃(Project Layout)은 프로젝트 타입에 따라서 변경됩니다. 예를 들면 J2EE 프로젝트는 표준 자바 애플리케이션과 다른 레이아웃을 갖고 있습니다. 자바 애플리케이션에서 사용하는 전형적인 레이아웃은 루트 디렉토리에 하위 구조를 생성합니다. 서브 디렉토리에는 애플리케이션 소스, 클래스 파일, javadoc 파일, 프로젝트에서 사용하는 외부 라이브러리와 테스트를 위한 배포 파일(jar 파일)이 있습니다.

프로젝트 홈 디렉토리
+ -- build.xml (Ant 빌드 파일, ant를 사용하는 경우)
+ -- build.properties (Ant 빌드 파일에서 사용하는 Properties 파일. 선택적)
+ -- LICENSE (라이센스 파일)
+ -- src/ (자바 소스와 리소스)
    + -- org/...

    + -- META-INF/
    + -- META-INF/Manifest.mf (Manifest 파일은 JAR를 사용해서 생성)
+ -- classes/ / (컴파일된 .class 파일)
    + -- org/...
+ -- javadoc/ (Javadoc)
    |
    + index.html
    + org/...
+ -- deploy/ (배포하기 위한 애플리케이션 저장)
+ -- lib/ (프로젝트에서 사용하는 외부 라이브러리)


Hello World 자바 소스 생성하기

프로젝트를 시작하기 전에 프로젝트를 위한 디렉토리를 결정합니다. 여기서는 $HOME/projects/helloworld as the location of my project. Here is the list of steps I performed to set up the directory structure:

# mkdir $HOME/projects
# mkdir $HOME/projects
# mkdir $HOME/projects/helloworld
# mkdir $HOME/projects/helloworld/classes
# mkdir $HOME/projects/helloworld/src/otn
# cd $HOME/projects/helloworld/src/otn
# vi Main.java



Note: VI에서 삽입 모드로 변경하기 위해서는 'i' 키를 누릅니다. 물론 VI 대신에 여러분께서 편하게 사용할 수 있는 편집기를 사용해도 됩니다. 여기에서는 VI를 사용해서 설명하겠습니다.


package otn;

public class Main
{
       public static void main( String args[] )
       {
               System.out.println( "Hello World" );
       }
}



ESC 키를 누르고 'wq'를 입력하면 파일을 저장하고 VI를 종료합니다. 다음 명령을 사용해서 디렉토리 구조를 확인합니다.



# cd $HOME/projects
# find . -print
.
./helloworld
./helloworld/src
./helloworld/src/otn
./helloworld/src/otn/Main.java
./helloworld/classes






쉘에서 빌드 하기

자바 컴파일러(javac)를 사용해서 자바 소스 파일을 컴파일 합니다. C 컴파일러인 gcc에 익숙한 개발자라면, javac도 쉽게 사용할 수 있을 것입니다. javac를 사용할 때, 아래 내용을 반드시 확인해야 합니다.

자바 파일이 있는 소스 위치
클래스 파일이 생성되는 디렉토리
javac의 컴파일 컴파일 대상이되는 .java 파일
아래는 Main.java 파일을 컴파일 하기 위한 javac 명령어 사용 예제 입니다.

# cd $HOME/projects/helloworld
# javac -sourcepath src -d classes src/otn/Main.java
다음과 같이 생성된 파일 확인할 수 있습니다.

# cd $HOME/projects/helloworld/classes
# find . -name *.class -print
./otn/Main.class




Ant 빌드 파일 생성하기

다음과 같이 Ant 빌드 파일(build.xml)을 생성합니다.

빌드 타겟은 'make' 1개 설정
otn/ 서브 디렉토리에 있는 모든 .java 파일을 javac로 컴파일
빌드 소요시간을 알려주는 시간 표시
아래와 같은 build.xml이라고 불리는 $HOME/projects/helloworld 에 있는 파일 생성

<?xml version = '1.0' ?>
<project name = "OTN" default = "make" basedir = ".">
   <target name = "make">
       <tstamp />
       <javac  srcdir="src/" destdir = "classes/">
           <include name="otn/**"/>
       </javac>
   </target>
</project>

아래는 Ant 명령어를 수행한 예제입니다.

# ant
 Buildfile: build.xml
make:
 [javac] Compiling 1 source file to /home/rcleveng/projects/helloworld/classes
BUILD SUCCESSFUL
 Total time: 3 seconds


간단한 자바 애플리케이션을 완성했습니다.

BUILD.XML 작성

System/Server 2006. 10. 17. 21:18 by 정민군

build.xml의 구성

by kkaok
2003-06-02


Ant의 빌드파일은 확장자를 보면 알 수 있듯이 xml이다. 따라서 빌드파일의 최상단에는 xml의 정의해야 한다. 전체 구성은 <project>로 시작해서 </project>로 끝나고 그 안에 하나 이상의 target, Properties, path 등이 삽입된다.


xml 정의

<?xml version="1.0" encoding="euc-kr"?>


project
project는 name, default, basedir 세가지 속성을 가진다.

name은 프로젝트명이고 default는 실행타겟이 지정되지 않았을 때 기본적으로 실행되는 타겟명을 적는다. basedir은 처리되는 디렉토리 명으로 build.xml이 상위 폴더 아래 있다면 생략 가능하며 basedir="." 이런 식으로 적어 주면 된다.

<project name="kkaok" default="deploy">
...
</project>


Properties
프라퍼티는, 이름(name)과 값(value)을 한쌍으로 가지며. 이름은 대·소문자를 구별한다. 프라퍼티의 이름은 다른 곳에서 "${프라퍼티명}"으로 사용이 가능하다.

<property name="catalina.home" value="C:/Tomcat 4.1"/>
<property name="deploy.home" value="C:/kkaok_project/kr.pe.kkaok.board"/>


path, classpath
path와 clsaspath는 다음과 같은 형식을 가진다.

<classpath>
   <pathelement path="${classpath}"/>
   <pathelement location="lib/helper.jar"/>
</classpath>


내부요소(pathelement)로 path와 location이 있으며 path는 보통 이미 정의된 경로와 함께 사용할 때 사용되어지고 location은 단일한 파일을 설정하거나 디렉토리를 설정할 때 사용된다. 이외에 DirSets, FileSets, FileLists는, 내부에 <dirset>, <fileset>,<filelist> 요소로 지정할 수 있다.

<path id="compile.classpath">
   <pathelement location="${catalina.home}/common/classes"/>
   <fileset dir="${catalina.home}/common/lib">
       <include name="*.jar"/>
   </fileset>
   <fileset dir="lib">
       <include name="*.jar"/>
   </fileset>
</path>

target
target은 name, depends, if, unless, description 다섯 개의 속성을 가지며 다른 여러 타겟에 의존할 수 있다. 이것은 해당 타겟을 실행시키면 depends 된 여러 타겟을 함께 실행시킨다는 것이다.


depends : 이 타겟이 의존하는 타겟의 이름들.
if : 이 타겟을 실행하기 위해 설정되어야만 하는 프로퍼티의 이름.
unless : 이 타겟을 실행하기 위해서 설정되어선 안 되는 프로퍼티의 이름.
description : 이 타겟에 대한 설명.


실행 순서
<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C,B,A"/>
만약 위와 같이 타겟들이 서로 의존하고 있 D를 실행시킨다면

PROMPT>ant D

A,B,C,D 순으로 실행이 된다.


만약 명령창에서 그냥 ant만 하게 되면 project의 default로 정의된 타겟을 실행 시킨다. 위에서 A를 실행시키고 싶다면 아래처럼 하면 된다.

PROMPT> ant A

즉 여러개 실행 타겟 만들고 선별해서 실행 시킬 수 있다는 것이다. 너무나도 편리한 ant~~~


http://www.kkaok.pe.kr/


1 2 

카테고리

분류 전체보기 (46)
Technic (5)
Language (16)
Database (8)
System (5)
Server (4)
OS (1)
Algorithm (1)
Design (1)
Tool (3)
Framework (2)
Network (1)
Utility (1)
SmartPhone (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

글 보관함