반응형

오늘은 Shell script를 이용해서 jar파일을 생성하는 글을 써 보려 한다.

 

eclipse에서도 export 도구를 통해서 jar파일을 생성할 수 있다. 하지만, 만약 eclipse와 같은 tool을 사용할 수 없다면, 어떻게 해야하나?

 

그렇다면 아래 방법대로 jar파일을 묶어서 관리할 수 있도록 하자. 순서는 다음과 같이 하도록 한다.

 

[1] jar파일 생성 순서

(1) classe path 디렉토리 이하 모든 class파일들을 삭제한다.

 

(2) ant build를 이용해서 다시금 classs 파일의 내용을 빌드한다.

 

(3) svn 을 사용중이라면 svn 관련파일을 모두 삭제한다.

 

(4) 컴파일된 class 파일만을 이용하여 jar파일을 묶는 작업을 실시한다.

 

[2] 실제 아래 소스를 보도록 하자.

 ** makejar.sh **

#! /bin/sh

 

rm -rf ../bin/*
echo "(1) Previous class file delete"

 

./dant
echo "(2) Recompile Success"

 

find ../bin -name *.svn -exec rm -rf {} \;
echo "<3> SVN FILE DELETE"

 

cd ../bin/

jar -cf ../shell/${1} ./com/
echo "<4> Make Jar File"

 

cd ../shell/

 

[3] 실행결과

$ ./makejar.sh aaaa.jar
(1) Previous class file delete
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) Client VM (build 20.5-b03, mixed mode)
Buildfile: D:\SVN\rndtech\KPU\Source\RUNA_API\shell\build.xml

RUNA_API:
    [javac] Compiling 9 source files to D:\SVN\rndtech\KPU\Source\RUNA_API\bin
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\collection\RBox.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\collection\RBoxList.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\collection\RLog.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\crypto\Base64.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\crypto\Crypto.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\exception\BizException.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\util\CommonMenu.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\util\CommonThumbnail.java
    [javac] D:\SVN\rndtech\KPU\Source\RUNA_API\src\com\runa\common\util\CommonUtil.java

BUILD SUCCESSFUL
Total time: 2 seconds
(2) Recompile Success
<3> SVN FILE DELETE
<4> Make Jar File 

 

위 예제를 보게 되면 [1] 의 순서와 맵핑이 되는 것을 알 수 있을 것이다. 저렇게 shell script를 작성해 두면

 

API 묶음을 만들때 아주 유용하게 써먹을 수 있다. ANT Build하는 방법에 대해서는 알아서 체크해보기 바란다.

 

 

                                                                              - 2012.08.27 랑이씀 -

반응형

+ Recent posts