为Apache Ant添加FTP Task支持

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: https://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>
	
	<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>
 

 

你可能感兴趣的:(ant)