AntでFTPとSCPを実行
Antのタスクで「FTP」と「SCP」のタスクを組んでみる。
FTP
<!-- ================================= target: ftp.send ================================= --> <target name="ftp.send"> <antcall target="ftp"> <param name="server.send.dir" value="lib" /> <param name="binary" value="yes" /> <param name="local.send.dir" value="lib" /> <param name="local.send.include.name" value="*.jar" /> </antcall> <antcall target="ftp"> <param name="server.send.dir" value="conf" /> <param name="binary" value="no" /> <param name="local.send.dir" value="conf" /> <param name="local.send.include.name" value="*.xml" /> </antcall> </target> <!-- ================================= target: ftp ================================= --> <target name="ftp"> <ftp server="${サーバー名}" userid="${ユーザーID}" password="${パスワード}" remotedir="${リモート転送先ディレクトリ}/${server.send.dir}" verbose="yes" chmod="775" depends="yes" binary="${binary}"> <fileset dir="${local.send.dir}"> <include name="${local.send.include.name}" /> </fileset> </ftp> </target>
SCP
<!-- ================================= target: scp.send ================================= --> <target name="scp.send"> <antcall target="scp"> <param name="server.send.dir" value="conf" /> <param name="local.send.dir" value="conf" /> <param name="local.send.include.name" value="*.xml" /> </antcall> <antcall target="scp"> <param name="server.send.dir" value="lib" /> <param name="local.send.dir" value="lib" /> <param name="local.send.include.name" value="*.jar" /> </antcall> </target> <!-- ================================= target: scp ================================= --> <target name="scp"> <scp todir="${ユーザーID}:${パスワード}@${サーバー名}:${リモート転送先ディレクトリ}/${server.send.dir}" trust="true" verbose="true"> <fileset dir="${local.send.dir}"> <include name="${local.send.include.name}" /> </fileset> </scp> </target>
感想としては「FTP」の方がオプションの「chmod」で
転送しながらファイルのパーミッションを変更出来るし、
「depends(or newer)」で新規か、変更されたファイルのみ転送できるのもいい。
scpを使うとsshを使った安全なファイルのやり取りができます。
ftpやscpタスクはオプショナルタスクですので、
使用するにはデフォルトのままでは使用することはできません。
別途jarファイルを$ANT_HOME\libに配置する必要があります
ftpに必要なjarファイル commons-net-2.0.jar
scpに必要なjarファイル jsch-0.1.41.jar
JSch - Java Secure Channel
2009年4月4日時点