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 활용하기