Shinnara's Blog
Talking with Shinnara :: NaraTalk.com


Ant 를 쓰니 커맨드 라인에서의 작업이 무척이나 간편해집니다.

오늘은 뭐 별건 아니지만, 제가 쓰는 build.xml 화일을 소개해볼까 합니다. build.xml 화일이야 프로젝트에 맞도록 많이 바뀌겠지만, 오늘 이야기 하고자 하는 것은 가장 기본이 되는 부분입니다.

먼저 코드를 보시면..

<project name="DesKeyServerVer1.0" default="main" basedir=".">
        <target name="init">
                <property name="build" value="bin" />
                <property name="home" value="." />
                <property name="src" value="src" />
                <property name="dist" value="dist" />
                <property name="jarname" value="deskeyserver-1.0.jar" />
                <property name="mainclass" value="com.shinnara.deskeyserver.DesKeyServer" />
        </target>

        <target name="compile" depends="init">
            <mkdir dir="${build}" />
            <javac srcdir="${src}"  destdir="${build}" >
                <classpath>
                    <fileset dir="lib">
                        <include name="**/*.jar" />
                    </fileset>
                </classpath>
            </javac>
        </target>

    <target name="makejar" depends="compile">
        <mkdir dir="${dist}" />
        <jar destfile="${dist}/${jarname}"
             basedir="${build}" >
             <manifest>
                <attribute name="Main-Class" value="${mainclass}" />
             </manifest>
        </jar>
    </target>

    <target name="run" depends="compile">
        <java  classname="${mainclass}">
            <classpath>
                <pathelement path="${build}" />
                <fileset dir="lib">
                    <include name="**/jar" />
                </fileset>
            </classpath>
        </java>
    </target>

        <target name="main" depends="compile" />

        <target name="clean" depends="init">
                <delete dir="${build}" />
        </target>

        <target name="clean-bulid" depends="clean,compile" />

</project>


내용은 뭐 특별히 소개할만한게 없을지도 모르겠습니다만, ant 를 처음 사용하시는 분들을 위해 소개해봅니다.

제 작업 디렉토리를 보면 다음과 같습니다.

[shinnara ~/java/DesKeyServer/ver1.0]$ ls
CVS/       bin/       build.xml  dist/      lib/       src/

CVS 를 쓰다보니 CVS 라는 디렉토리가 있네요. 이부분은 그냥 넘어가도록 하고, 소스가 있는 src/, 컴파일된 클래스 파일이 있는 bin/ , jar 파일이 위치하는 dist/ , 프로그램에서 참조하는 라이브러리가 있는 lib/  그리고 위에 소개한 build.xml  입니다. bin/ 과 dist/ 는 ant 를 통해 자동으로 생성되는 디렉토리입니다. 물론 만들어놓아도 상관은 없습니다.

소스를 작성한 후, 컴파일을 하기 위해서는 현재 디렉토리에서 ant 를 입력합니다. ant 뒤에 target 을 지정할 수 있습니다. 지정하지 않을 경우 project 에서 default 로 명시한 target 을 수행하게 됩니다.

위의 빌드 파일을 보면

<project name="DesKeyServerVer1.0" default="main" basedir=".">


기본으로 설정된 target 이  main 임을 알 수 있습니다. 따라서 명령행에서 ant 라고 치거나 ant main 이라고 치는 것은 동일한 명령이 됩니다.

ant 에서 target 은 일련의 작업의 모음입니다. 작업은 task 라고 불리는데 디렉토리를 만들거나, 컴파일을 하거나, jar 로 묶는 등 ant 가 제공하는 기능을 의미합니다. ant 에서는 core task 와 optional task 의 두 부류의 task 를 지원하며, optional task 의 경우 별도의 라이브러리가 필요할 수 있습니다.

이름이 main 인 target 을 살펴볼까요?

<target name="main" depends="compile" />

별 내용없이 depends="compile" 이라고 되어 있네요. depends 는 선행조건을 의미합니다. 즉 main 이 실행되기 위해서는 compile 이 되어 있어야 한다는 것이지요.

그럼 이제 compile 을 살펴볼까요?

        <target name="compile" depends="init">
            <mkdir dir="${build}" />
            <javac srcdir="${src}"  destdir="${build}" >
                <classpath>
                    <fileset dir="lib">
                        <include name="**/*.jar" />
                    </fileset>
                </classpath>
           </javac>
        </target>

depends 에 init 가 있는 걸 보니, init가 뭘 하는지도 알아야겠군요. 위의 소스를 보면 여러 property들을 정의하고 있는 것을 찾아볼 수 있을 것입니다. ant 에서 property 를 참조하는 방법은 ${property_name} 입니다. 위의 소스를 보면 ${build} 라는 것을 볼 수 있는데, init 에서 build 에 대해 bin 으로 정의하고 있으므로

<mkdir dir="${build}" />




<mkdir dir="bin" />


과 같은 내용이라 할 수 있습니다.

javac 를 이용해서 컴파일을 하기 전에 먼저 디렉토리를 만드는 군요. 그리고나서 javac 를 이용하여 컴파일을 합니다. 커맨드라인에서 컴파일을 할 때 가장 귀찮은 것이 클래스 패스를 설정하는 것인데 ant 를 사용하면 무척이나 쉽게 할 수 있습니다. 위의 코드에서 fileset 부분은 lib 라는 디렉토리 밑에 있는 모든 .jar 파일을 클래스패스에 추가하라는 의미입니다.

그 외에도 컴파일러 옵션을 추가 할 수 도 있습니다.

<compilerarg value="-Xlint" />



이제 컴파일 부분이 끝났습니다. 컴파일을 했으면 실행을 시켜봐야 겠지요?


    <target name="run" depends="compile">
        <java  classname="${mainclass}">
            <classpath>
                <pathelement path="${build}" />
                <fileset dir="lib">
                    <include name="**/jar" />
                </fileset>
            </classpath>
        </java>
    </target>


compile 부분과 별로 다른게 없군요..

다음은 makejar 입니다.


    <target name="makejar" depends="compile">
        <mkdir dir="${dist}" />
        <jar destfile="${dist}/${jarname}"
             basedir="${build}" >
             <manifest>
                <attribute name="Main-Class" value="${mainclass}" />
             </manifest>
        </jar>
    </target>

여기서 주의 깊게 볼만한 내용은 manifest 부분입니다. jar 로 묶을 때 Main-Class 를 지정할 수 있습니다.

그외의 작업으로 clean, clean-build 가 있지만 너무 쉬운 내용이라 그냥 넘어가도록 하겠습니다.

즐거운 프로그래밍하세요~ ^^







이올린에 북마크하기(0) 이올린에 추천하기(0)
0 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/143 관련글 쓰기

댓글을 달아 주세요


처음 Groovy 를 알게 된 것이 Ant 의 Task 중의 Script task 를 보다가 접하게 되었는데, Ant 에서 Groovy 를 활용하는 방법에 대한 내용입니다. Script 를 사용할 수 도 있지만 오늘 보여드릴 예제처럼 taskdef 를 이용하실 수도 있습니다.

먼저 하고자 하는 것은 현재 폴더에 있는 파일들이 과거 특정 시점(여기서는 ant 를 실행했던 직전 시점) 이후에 고쳐진 파일이 무엇인지를 찾아내는 것입니다. 그간 이곳의 글들을 보신 분들은 아시겠지만 작업 환경을 꾸며나가는 과정에서 Ant 와 FTP 를 활용하고 있습니다. 그런데 FTP 를 이용한 업로드의 경우, 수정되지 않은 파일까지 모두 전송하게 되므로, 업로드 후에 빌드를 하려고 하면 처음부터 다시 빌드가 됩니다. 따라서 수정되지 않은 파일은 업로드 하지 않도록 하는 방법을 생각해보던 중에 Script 를 써서 해결하면 되지 않을까하여 접근하게 되었습니다.

일단, 오늘은 위에서 언급한 대로 새로 고쳐진 파일이 있는지를 확인합니다. 확인하는 방법은 직전의 ant 작업의 끝에 특정 파일을 생성합니다. 그리고 다시 ant 를 하게 하면 그 파일의 시간을 기준으로 삼고 새롭게 수정된 내용이 있는지를 확인하는 방법입니다.

제가 작성한 build.xml 파일입니다.

<?xml version="1.0" encoding="UTF-8" ?>
<project name="syncer" default="main" basedir=".">   
    <property name="dir.lib" value="/usr/local/groovy/lib"/>
    <property name="file.last" value="timestamp.log" />
    <taskdef name="groovy"
             classname="org.codehaus.groovy.ant.Groovy">
        <classpath>
          <fileset dir="${dir.lib}">
            <include name="**/*.jar"/>
          </fileset>
        </classpath>
    </taskdef>

    <target name="main">
        <groovy>
        lastTimestamp = (new File("${properties['file.last']}")).lastModified()
       
        files = new File(".").listFiles()
        files.each { if( it.lastModified() > lastTimestamp )
                      {
                        println it.toString() + " is newer!"
                      }
         }
       
        </groovy>
        <touch file="${file.last}" />
    </target>
</project>

실행하면 다음과 같은 결과를 보여줍니다.

[shinnara ~/groovy/work/syncer]$ touch a.out
[shinnara ~/groovy/work/syncer]$ ant
Buildfile: build.xml

main:
   [groovy] ./a.out is newer!

BUILD SUCCESSFUL
Total time: 4 seconds


groovy 를 제대로 활용하면 더욱 편리한 작업환경을 만들수 있을 것 같습니다.







이올린에 북마크하기(0) 이올린에 추천하기(0)
TAG ant, Groovy
0 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/131 관련글 쓰기

댓글을 달아 주세요


세 번이상 반복되는 것은 자동화하라.

개발자 자신을 위한 툴을 만들자.

제가 요즘 항상 마음속에 품고 있는 말입니다. 개발이나 어떤 일을 할 때, 보다 생산성이 높고, 실수할 확률이 적은 방법을 항상 찾으려고 하고 있답니다.

얼마전부터 Ant 와 CVS 등을 이용해서 개발 환경을 좀더 편리하게 바꾸고 있는데, 제가 작업하는 Windows 와 FreeBSD 는 Ant 와 FTP, CVS 를 이용해서 작업이나 디플로이등이 무척 편리해졌습니다.  하지만 최종적으로 디플로이를 해야하는 서버의 경우는 외부 네트워크에 있는 데다가 SSH, SFTP 로만 접속이 가능합니다. Ant 의 task 를 보니 sftp 는 지원을 하지 않더군요. 그래서 그동안은 FileZilla 를 이용해서 수동으로 디플로이를 했습니다.

하지만, 개발을 진행하면서 하나, 둘 수정 사항이 생기고 디플로이 작업이 많아지자, 위에 써놓은대로 자동화를 해야 겠다는 생각이 들었습니다. 그래서 찾은 것이 maverick-ant


그래서 당장 테스트를 해보았습니다.

위 홈페이지에서 받은 파일을 압축을 풀면 lib 디렉토리에 maverick-ant.jar 가 있습니다.  이 파일을 클래스패스에서 찾을 수 있도록 해주는 것이 필요합니다. 또는 build.xml 에서 classpath 를 지정해 줄 수도 있습니다. 저 같은 경우는 eclipse 에서 쓰고자 했기 때문에 지난번 포스팅: Eclipse에서 Ant 를 활용하는 방법 에서와 같이 Ant 의 Runtime 에 등록해 둡니다.

이것으로 환경설정은 끝입니다.

이제 Ant 설정화일(build.xml 과 같은)을 만들어야 하는데, 제가 쓰고 있는 설정화일의 내용입니다.


<?xml version="1.0" encoding="utf-8" ?>
<project name="SFTP_TO_108SERVER" default="upload" basedir=".">
    <property name="ftp.server" value="123.123.123.123" />
    <property name="ftp.port" value="220" />
    <property name="ftp.home.dir" value="/usr/local/apache-tomcat/webapps/bridge/WEB-INF" />
    <property name="ftp.userid" value="hkshin" />
    <property name="ftp.pw" value="123.123.123" />
   
    <taskdef name="ssh" classname="com.sshtools.ant.Ssh" />
   
    <target name="upload">
        <ssh host="${ftp.server}" port="${ftp.port}"
             username="${ftp.userid}"
             password="${ftp.pw}"
             version="2">
            
             <sftp action="put" remotedir="${ftp.home.dir}" verbose="true">
                 <fileset dir="." >
                     <include name="**/*.java" />
                     <include name="**/*.properties" />
                 </fileset>
             </sftp>
          </ssh>
    </target>
   
</project>

보시다시피 확장자가 java 와 properties 인 내용만 전달하는 것입니다.

내용이 너무 간결하지 않나요? ^^ 제대로 동작하는 거 확인하고 나서 얼마나 즐거웠는지..
아래는 eclipse 에서 동작하는 모습입니다.

upload:
      [ssh] Initializing J2SSH Maverick
      [ssh] SSH2 is supported
      [ssh] Configuring SSH contexts
      [ssh] SSH2 default cipher Blowfish will be used
      [ssh] Setting SSH2 default MAC to MD5
      [ssh] Creating connection to 123.123.123.123:220
      [ssh] Connecting....
      [ssh] Authenticating hkshin
      [ssh] Performing password authentication
      [ssh] Password Authentication completed
      [ssh] Operating system is Linux [linux-gnu]
      [ssh] Using simple pattern matcher
      [ssh] Setting the remote directory
      [ssh] Remote directory is /usr/local/apache-tomcat/webapps/bridge/WEB-INF
      [ssh] Sending files
      [ssh] Local dir is D:\XXXXXX
      [ssh] Transfering 12 files
       ....
      [ssh] transferring D:\XXXXXXX\Util.java to /usr/local/apache-tomcat/webapps/bridge/WEB-INF/src/XXXXXXX/Util.java
      [ssh] 12 files Sent
      [ssh] Disconnecting from 123.123.123.123
BUILD SUCCESSFUL
Total time: 13 seconds



이올린에 북마크하기(0) 이올린에 추천하기(0)
1 Trackback, 3 Comment

TRACKBACK :: http://naratalk.com/trackback/127 관련글 쓰기

  1. Subject: eclipse에서 ant ftp task 사용하기

    Tracked from SJAVA :: HTTP://WWW.SJAVA.NET  삭제

    ANT로 빌드파일(build.xml)을 만들고, 빌드파일을 통해서 컴파일된 바이너리를 FTP로 전송할 수 있는 기능이 있습니다. 단계는 아래와 같습니다. 1. ftp 라이브러리 설치 http://commons.apache.org/net/의 최신버전을 다운로드 받습니다. 다운로드 받은 라이브러리인 commons-net-1.x.x.jar 파일을 이클립스가 설치된 폴더/plugins/ant설치버전/lib 폴더에 카피를 합니다. 참고로, 현재 최신버전은 c..

    2008/06/27 11:40

댓글을 달아 주세요

  1. tester  댓글주소  수정/삭제  댓글쓰기

    궁금한 사항이 있어서 그런데요.. 이클립스에서 어떻게 실행해야 하나요? Run As 로 해서 ANT로 실행하니 에러가 발생하는데...

    2007/11/21 17:53
  2. Fox  댓글주소  수정/삭제  댓글쓰기

    퍼갈꼐요^_^

    2009/01/05 17:05


사용자 삽입 이미지
며칠전에 올린 Ant 관련글 에서처럼 Ant 를 사용하기 시작했습니다. 커맨드 라인에서 개발하다보니 컴파일이 귀찮아져서 자동화하기 위해, 그동안 미뤄왔던 Ant 에 대한 학습(?)을 하게 된 것인데, 이게 생각보다 편하더군요.그리고 무지 훌륭한 기능들이 Task 라는 형태로 지원되고 있구요.. 하여간 적극 추천입니다.

그런데, 서버에 접속하서 커맨드 라인 또는 vi, 아니면 FTP 연결 기능이 있는 텍스트 에디터(예: acroedit )를 사용하다 보니, 이것 또한 여간 귀찮은게 아니더군요. 특히나 클래스나 인터페이스가 여러개일 경우 해당 클래스에 어떤 메소드가 있는지를 찾는게 제일 고역이었습니다. 클래스가 몇개 되지도 않는데 이러니, 규모가 더 커지면 정말 힘들겠더군요.  그래서 다시 IDE 에서 작업해야 겠다는 생각을 하게되었습니다. IDE(주로 eclipse)에서 작업을 하더라도 작업 내용을 해당 서버에 올리면서 테스트를 해야하기에 FTP 작업이 필요하게 되었습니다.

Eclipse 에서 FTP를 사용할 수 있게 하는 플러그인은 여러가지가 있는 것으로 알고 있습니다. 하지만 전에 설치해본 결과, 제대로 설치가 되지 않는 등의 문제로 안쓰게 되곤 했습니다. 그러던 중 Ant 를 이용하여 Eclipse 에서 FTP 작업을 할 수 있다는 글을 보게되었습니다. (원문 : 네이버 로그인이 필요할수도 있습니다.)

Eclipse 에서 Ant 를 이용한 FTP 작업을 하기위해서는 추가적인 라이브러리가 필요합니다. 위의 원문에서는 두개의 파일이 필요한 것으로 되어있는데, 제 환경(Eclipse 3.2.2)에서 확인해본 결과 commons-net 은 이미 플러그인으로 등록이 되어 있어서 추가적으로는 jakarta-oro 만 설치하였습니다.

jakarta-oro 는 여기서 다운받으실 수 있습니다. 이번 설치에 쓰인 파일은 jakarta-oro-2.0.8.jar 입니다.
다운받아서 압축을 풀고 디렉토리안에 있는 jakarta-oro-2.0.8.jar  파일을 Preferences->Ant->Runtime->Classpath->Ant Home Entries 에 Add External Jars 를 이용하여 등록합니다.

다시 살펴보니 이미 ant-apache-oro.jar 가 플러그인으로 들어가 있네요. 그래서 위의 내용은 삭제합니다. 따라서 Ant 를 이용해서 FTP 작업을 하기위해 특별히 해야할 작업은 없습니다 ^^


이것으로 Eclipse 에서 Ant 를 이용하여 FTP를 사용하기 위한 준비 작업이 끝납니다.


사용자 삽입 이미지
이제 작업을 위한 Ant Build 화일을 만들어주어야 합니다.

제 경우는 TEST 라는  프로젝트를 만들고 그 아래에 ftp_upload.xml 이라는 파일을 만들었습니다.

아래는 그 내용입니다.

<project name="TEST" default="ftp_upload" basedir=".">

    <property name="ftp.server" value="192.168.0.156" />
    <property name="ftp.home.dir" value="/usr/home/shinnara/java/ftptest" />
    <property name="ftp.userid" value="shinnara" />
    <property name="ftp.pw" value="123456" />
   
   
    <target name="ftp_upload">
        <ftp server="${ftp.server}"
             remotedir="${ftp.home.dir}"
             userid="${ftp.userid}"
             password="${ftp.pw}">
             <fileset dir="."/>
        </ftp>
    </target>
   
    <target name="ftp_getSource">
        <ftp action="get"       
             server="${ftp.server}"             
             remotedir="${ftp.home.dir}/src"
             userid="${ftp.userid}"
             password="${ftp.pw}">
             <fileset dir="src"/>
        </ftp>           
    </target>
   
    <target name="ftp_clean">
        <ftp action="del"
             server="${ftp.server}"
             remotedir="${ftp.home.dir}"
             userid="${ftp.userid}"
             password="${ftp.pw}">
             <fileset>
                 <include name="**" />
             </fileset>
        </ftp>   
        <ftp action="rmdir"
             server="${ftp.server}"
             remotedir="${ftp.home.dir}"
             userid="${ftp.userid}"
             password="${ftp.pw}">
             <fileset>
                 <include name="**" />
             </fileset>
        </ftp>
    </target>
   
</project>


위의 Ant 빌드 파일은 모두 세개의 target 을 포함하며 내용은 그리 다르지 않습니다. clean 의 경우 action 을 del 만 할 경우, 디렉토리는 그대로 남기때문에 화일을 지우고 디렉토리까지 지우는 부분을 추가하였습니다.

이렇게 하고 Eclipse 의 Windows->Show View 에서 Ant 를 선택하면 Ant View 가 생기는데 여기에 빌드 화일을 추가하면 위의 세 target 이 나타납니다. 원하는 작업을 선택하여 실행버튼을 누르면 Console 을 통해 확인할 수 있습니다.

Ant 를 알게 되니 작업이 많이 편리해지더군요. 그동안 귀찮아서 안하던 것들, 배워야 할 것들을 이 기회에 도전해보려고 합니다.

Ant 는 Ant 홈의 manual에 아주 자세히 설명되어 있고, 처음 사용하시는 분은 다음 자료를 참고하시면 많은 도움이 될 것입니다.



3번 이상 반복되는 작업은 자동화하고, 개발자 자신을 위한 툴을 만들자







이올린에 북마크하기(0) 이올린에 추천하기(0)
TAG ant, Eclipse, FTP, Task
1 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/96 관련글 쓰기

  1. Subject: eclipse에서 ant ftp task 사용하기

    Tracked from SJAVA :: HTTP://WWW.SJAVA.NET  삭제

    ANT로 빌드파일(build.xml)을 만들고, 빌드파일을 통해서 컴파일된 바이너리를 FTP로 전송할 수 있는 기능이 있습니다. 단계는 아래와 같습니다. 1. ftp 라이브러리 설치 http://commons.apache.org/net/의 최신버전을 다운로드 받습니다. 다운로드 받은 라이브러리인 commons-net-1.x.x.jar 파일을 이클립스가 설치된 폴더/plugins/ant설치버전/lib 폴더에 카피를 합니다. 참고로, 현재 최신버전은 c..

    2008/06/27 11:39

댓글을 달아 주세요

Ant 사용하기

Computer/Programming/Java 2007/08/20 16:21 by Shinnara

사용자 삽입 이미지
나의 Professionality 에 대해 묻는다면,  십중팔구 Java 에 대한 이야기를 하지 않을 수 없을 것이다. 지금껏 해온 일이 그렇고, 또 좋아하는 것도 그렇고.. 물론 최근에는 관심사가 많이 바뀌어서 다른쪽에 눈을 돌리고 있긴 하지만, 그래도 지금까지 자신 있게 말할 수 있는 건, 개발자로서의 나에게 가장 중요한 툴이 Java 라는 사실이다.

 95년부터 Java를 알아왔고, 회사에서 프로젝트도 진행하고 했지만, 지금의 Java는 너무나도 비대해져버려서 모르는게 너무 많아졌다. 처음 Java를 알았을땐 그 단순, 깔끔함이 좋았는데..  Java 와 관련된 툴 역시 마찬가지이다. 기능과 성능이 좋아지고 편리해지긴 했지만, 왠지 점점 멀어지는 것 같은 느낌.. 최근에는 Linux 나 FreeBSD 머신에서 C/C++ 로 Geek 스러워 지는 상상을 해보기도 한다. 가능할지는 모르겠지만...

하여간 Java 가 밥벌이에 쓰이고 있는 건 맞는데, 점점 내것이 아닌 듯한 느낌이 드는 이유를 생각해보니.. 2년여간의 공백(대학원 공부)과 새로운 것에 대한 열의 부족이 원인이라는 생각이 들었다. 그저 예전에 해오던 습관대로, 조금 불편해도 그냥 쓰는 방법을 택하다 보니 그저 그 수준에서 머무르는 게 원인이었다.

그래서 좀더 도전적이고, 좀더 열의와 성의를 가지고 새로운 마음으로 Java를 대하기로 하였다. 반복되는 작업이 있으면 자동화하고, 나를 위한 툴도 만들어야 겠다는 생각이 들었다.

이러한 개혁(?)의 시작으로 Ant 를 선택하였다. 조금은 아니 많이 창피한 일이지만, 지금껏 제대로 Ant 를 써볼 생각조차 안하였다. 물론 워낙 IDE 가 잘 되어 있어서 필요성을 못 느끼기도 했지만, 굳이 새로운 것을 배워야 하나 라는 귀차니즘의 결과가 아니었을까.. 그러던 차에 회사에서 진행하는 프로젝트에 Servlet 을 구현하는 부분이 생겼다. 웹 브라우저의 요청을 받아 내부의 다른 서버에게 소켓으로 보내는  간단한  프로그램이다.  Tomcat  플러그인이 여러가지 있지만, 예전의 개발 경험을 보면 그다지 효율적이지는 않았던것 같았다. 그래서 이번 개발은 그냥 커맨드 라인으로 작업하기로 하였다.

그러다 보니 그동안 IDE(주로 Eclipse 와 NetBeans) 에서 간단히 컴파일하던것이 가장 큰 문제로 다가왔다. 특히나 Servlet 을 개발하니 servlet-api 를 클래스 패스에 걸어주어야 했다. 그렇다고 그게 그리 불편한 문제는 아니었다. 쉘 스크립트를 만들 수도, Alias 를 할 수 도 있으니..

하지만, 새로운 마음가짐으로 대하자는 생각에 Ant 를 사용하기로 하였다. 그래서 Ant 를 다운받고 설치하고, 사용설명서를 찾아보는 과정에서 다음의 글을 보게 되었다.

- 참을수 없이 가벼운 존재, Ant 중에서..

왜 기술은 발전하는데, 우리는 이제 막 도구를 익힌 구석기시대인이 되어야하는가?

3번 이상 반복되는 일은 자동화하라. 그리고 그 시간에 근본에, 문제해결에 집중하자.

우리도 진화 좀 하자.^^

내 자신에게 하는 얘기이기도 함. 귀찮다고 내버려두지 말자구!



정말 내 생각과 꼭 같은 생각을 하고 계신 분이었다.

오늘부터 새롭게 시작하는 것이다~!!!

** Ant 에 대한 사용법과 팁은 알게 되는 대로 올리겠습니다 ^^


도움이 되는 자료들

1.  ANT를 이용한 개발과 배포 프로세스 - JSTORM


이올린에 북마크하기(0) 이올린에 추천하기(0)
TAG ant, java
0 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/93 관련글 쓰기

댓글을 달아 주세요

1 
다...... (251)
Computer/Programming (106)
Links (14)
책 읽는 즐거움 (6)
끄적임 (61)
즐거운 과학 나라 (7)
일본 (2)