Apache Ant 的 FTP Task 需要依賴 apache common-net 包。如果需要使用 FTP 任務, 需要將 common-net 包放到 $ANT_HOME/lib 下。



 

如果是 Ubuntu 用戶,並且用 apt-get 安裝的 Ant, 可以使用如下腳本:


 

wget HTTP://www.fayea.com/apache-mirror//commons/net/binaries/commons-net-3.1-bin.zip
unzip commons-net-3.1-bin.zip
sudo cp commons-net-3.1/commons-net-3.1.jar /usr/share/ant/lib/
rm -rf commons-net-3.1
rm -rf commons-net-3.1-bin.zip

 

Gist: HTTP://go.rritw.com/gist.github.com/4030368



 

如果是 Windows 用戶, 需要自行下載 apache common-net 3.1 包, 並且將 commons-net-3.1.jar 放到 %ANT_HOME%/lib 下



 

安裝好後,便可以使用FTP指令:




 

<?xml version="1.0" encoding="utf-8" ?>
<project name="cas" default="rupload">
<description>The cas project ant script tools</description>
<property environment="env"/>
<property name="basedir" value="." />
<property name="tools.ruby" value="${basedir}/tools/ruby"/>

 

<property name="ftp.host" value="192.168.1.42"/>
<property name="ftp.username" value="tomcat"/>
<property name="ftp.password" value="tomcat"/>
<property name="ftp.remotedir" value="webapps"/>
 
<property name="r.cmd.start" value="startup" />
<property name="r.cmd.stop" value="shutdown" />

 

<target name="rstart" description="start remote tomcat" >
<exec executable="ruby">
<arg value="${tools.ruby}/rtomcat.rb"/>
<arg value="${r.cmd.start}"/>
</exec>
</target>

 

<target name="rstop" description="start remote tomcat" >
<exec executable="ruby">
<arg value="${tools.ruby}/rtomcat.rb"/>
<arg value="${r.cmd.stop}"/>
</exec>
</target>
 
 
 
 

 

<property name="r.cmd.start" value="startup" />
<property name="r.cmd.stop" value="shutdown" />

 

<target name="rstart" description="start remote tomcat" >
<exec executable="ruby">
<arg value="${tools.ruby}/rtomcat.rb"/>
<arg value="${r.cmd.start}"/>
</exec>
</target>

 

<target name="rstop" description="start remote tomcat" >
<exec executable="ruby">
<arg value="${tools.ruby}/rtomcat.rb"/>
<arg value="${r.cmd.stop}"/>
</exec>
</target>

 

 

 

<target name="rrmfiles">
<ftp action="del" userid="${ftp.username}" password="${ftp.password}" server="${ftp.host}">
<fileset>
<include name="${ftp.remotedir}/${ant.project.name}/**"/>
<include name="${ftp.remotedir}/${ant.project.name}/**/*"/>
</fileset>
</ftp>
</target>

 

<target name="rrm" depends="rrmfiles" description="rm project folder from remote">
<ftp action="rmdir" userid="${ftp.username}" password="${ftp.password}" server="${ftp.host}"
remotedir="${ftp.remotedir}">
<fileset>
<include name="${ant.project.name}"/>
<include name="${ant.project.name}/**"/>
</fileset>
</ftp>
</target>

 

<target name="rcas" depends="rrm" description="create a cas folder on server" >
<ftp action="mkdir" userid="${ftp.username}" password="${ftp.password}" server="${ftp.host}"
remotedir="${ftp.remotedir}/${ant.project.name}">
</ftp>
</target>

 

<target name="rupload" depends="rcas" description="upload vas file to remote ftp" >
<ftp userid="${ftp.username}" password="${ftp.password}" server="${ftp.host}"
remotedir="${ftp.remotedir}/${ant.project.name}">
<fileset dir="${basedir}">
<excludesfile name=".project"/>
</fileset>
</ftp>
</target>

 

</project>
 
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()