利用ant 自动更新svn+打包+上传

本文介绍如何使用Apache Ant实现项目的自动化构建与部署流程。通过配置特定的任务和目标,如编译、打包及FTP上传等,实现了从源代码到生产环境的一站式部署。文章详细展示了所需的工具、环境配置步骤及具体的build文件代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:工具
1、apache-ant-1.8.2-bin.zip
2、svnant-1.2.1.zip(下载的时候要注意与jdk的版本对应,我就在这个地方郁闷了半天)
3、commons-net-2.2-bin.zip
4、ServUSetup.zip(ftp服务器)
二:步骤
1、解压apache-ant-1.8.2-bin.zip,配置相应的环境变量ANT_HOME,path
2、把svnant-1.2.1\lib下的jar以及commons-net-2.2下的jar放到 ANT_HOME\lib 下
3、安装ftp服务器,执行ServUSetup.exe(设置好用户的id和密码,build文件用到)
三:build 文件代码


<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-smu" default="sendSmuToFTP" basedir="../">
<!-- 这里的basedir是工程的目录为根目录
一般basedir="."表示的是build.xml文件所在的相对目录为根目录即src
-->
<property name="src" value="src"/>
<!-- 编译目录-->
<property name="dest" value="/${basedir}/WebRoot/WEB-INF/classes"/>
<property name="svnurl" value="svn://192.168.0.12/nvs/java/smu"/>
<property name="svnusername" value="user1"/>
<property name="svnuserpw" value="user1_p"/>
<property name="ftpserverip" value="192.168.0.155"/>
<property name="ftpuserid" value="admin"/>
<property name="ftpuserpw" value="123"/>

<!-- 定义发布目录-->
<property name="webApp" value="D:\nvr2000\nvr2000\tomcat\webapps\"/>

<taskdef resource="svntask.properties">
<!-- 我这里是把svnant-1.2.1\lib下的三个jar放到工程lib下了,无论放到哪里,定义好path就可以-->
<classpath>
<pathelement location="${basedir}/WebRoot/WEB-INF/lib/svnjavahl.jar" />
<pathelement location="${basedir}/WebRoot/WEB-INF/lib/svnant.jar" />
<pathelement location="${basedir}/WebRoot/WEB-INF/lib/svnClientAdapter.jar" />
</classpath>
</taskdef>
<target name="clean">
<delete dir="${webApp}smu.war"/>
<echo message="delete ${webApp}smu.war..." />
</target>
<target name="checkoutThis" depends="clean">
<svn username="${svnusername}" password="${svnuserpw}">
<checkout url="${svnurl}" revision="HEAD" destPath="${basedir}"/>
</svn>
</target>
<echo message="init ..." />
<target name="init" depends="checkoutThis">
<mkdir dir="${dest}"/>

</target>
<!-- 编译class文件-->
<target name="compile" depends="init">
<!--<javac srcdir="${src}" destdir="/${basedir}/WebRoot/WEB-INF/classes"></javac> -->
</target>
<!-- 打包-->
<target name="war" depends="compile">
<war destfile="${webApp}smu.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
<fileset dir="${basedir}/WebRoot">
<include name="**/*.*"/>
</fileset>
</war>
</target>
<!-- 上传,ftp上传有两种方式主动PORT,被动PASV,网上说内网用被动模式需要一些对ftp服务器的设置,按网上说的做应该可以,我没有做-->

<target name="sendSmuToFTP" depends="war">
<ftp server="${ftpserverip}" port="21" userid="${ftpuserid}" password="${ftpuserpw}" depends="no" verbose="yes">
<fileset dir="${webApp}">
<include name="*.war"/>
</fileset>
</ftp>
</target>
</project>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值