프로그래머의 삶 Programmer's Life/Java!!

ANT build 오류 - eclipse

Oliver's World 2009. 11. 23. 12:08
728x90

 

ant 1.6.2버전부터 ftp를 이용하여 서버의 데이터를 로컬로 받을수 있는기능을 제공한다.

필수 라이브러리
  1. Commons Net
  2. ORO


1. Commons Net (commons-net.jar)

 

  http://jakarta.apache.org/commons/net/index.html

 

  http://apache.cdnetworks.co.kr/commons/net/binaries/commons-net-1.4.1.zip

 

 

2. ORO (jakarta-oro-2.0.8.jar)

 

  http://jakarta.apache.org/oro/index.html

 

  http://apache.cdnetworks.co.kr/jakarta/oro/binaries/jakarta-oro-2.0.8.zip
 
  // 없는 경우 Ant 실행시 에러남
  java.lang.NoClassDefFoundError: org/apache/oro/text/regex/MalformedPatternException

 

 


 
jar 파일을 받은 후에 Ant 실행 시 Classpath에 걸어주면된다
or
jar 파일을 eclipse/plugins/ant_xx/lib 폴더에 두면 된다.
  - eclipse_3.2.1\plugins\org.apache.ant_1.6.5\lib
  - eclipse_3.1.1\plugins\org.apache.ant_1.6.5\lib


이클립스의 window -> preferences -> ant -> runtime 에다가 위 두 라이브러리를 추가한다.
Classpath(Ant 홈 항목)->Add External JARS

my : D:\usr_local\apache-ant-1.6.5\commons-net-1.4.1\commons-net-1.4.1.jar 를 추가함


==================== ftp_upload.xml ======================
<?xml version="1.0" encoding="utf-8" ?>
<project name="ant_ftp_upload" default="upload" basedir=".">

<target name="upload" >
<ftp
 server="[FTP 주소]"
 port="[FTP 포트]"
 remotedir="[FTP 의 시작 경로]"
 userid="[FTP 아이디]"
 password="[FTP 비번]"
 verbose="yes"
 depends="yes"
 timediffauto="yes"
>
     <fileset dir="src/">
       <!--include name="**/*.jsp"/-->
     </fileset>
</ftp>
</target>

</project>
==================== ftp_upload.xml ======================
ftp task 에 대한 자세한 내용은 

http://ant.apache.org/manual/OptionalTasks/ftp.html  참고


- 파일에다가 대고 마우스 오른쪽- run 에서 실행 누르면 된다.
** FTP 비번이나 아이디 쓰는곳에 특수문자는 두번씩써야 인식되기 때문에 비번에 특수문자가 있는경우는 유의하자.

 

 

 


##################################################
# BUILD FAILED
##################################################

ftp_upload.xml:14: could not put file: 502

Illegal PORT Command

==> Passive 모드로 설정한다.
 passive="yes"

 

ftp_upload.xml:14: java.lang.ArrayIndexOutOfBoundsException: 0
==> 변경된 파일 목록을 검사하는 중에 나는 에러 같음.
1. depends 부분을 제거한다.
 depends="yes"  // 제거


2. ftp 명령에 대한 "ls -l" 결과를 변경한다.
## 솔라리스 10 이전
/etc/rc.config.d/LANG 파일에서

export LANG=ko_KR.eucKR

export LANG=C

으로 수정


## 솔라리스 10


http://www.solarisschool.com/tip/view.html?board=tip1&no=19834&start=0&sselect=&mode=&qry_string=svcadm enable ftp
 
하시면 활성화 됩니다

==> 어떻게 LANG을 넣지?

# svccfg -s ftp setenv LANG C

 

 

=============== 기존 ====================
-rw-r--r--   1 tsms     tsms       18485  2월 26일  19:06 a
-rw-r--r--   1 tsms     tsms       13796  5월  1일  08:11 a.txt
drwxr-xr-x   3 tsms     tsms         512  7월  8일  20:00 bin
drwxrwx---   2 tsms     tsms         512  3월  7일  13:57 conf


=============== 변경 ====================

-rw-r--r--   1 tsms     tsms       18485 Feb 26 19:06 a
-rw-r--r--   1 tsms     tsms       13796 May  1 08:11 a.txt
drwxr-xr-x   3 tsms     tsms         512 Jul  8 20:59 bin
drwxrwx---   2 tsms     tsms         512 Mar  7 13:57 conf

 


ftp_upload.xml:14: Could not login to FTP server
==>
id, password 가 잘못된 경우

 


#### [ANT] ftp task의 문제점


http://okjsp.pe.kr/bbs?act=VIEW&bbs=bbs4&seq=38814&pg=0&keyfield=subject&keyword=&pact=&password=

 

#### 참고 사이트


http://wiki.javajigi.net/pages/viewpage.action?pageId=179

 

#### Ant에서 SFTP task 활용하기


http://shinnara.tistory.com/127

728x90