近期在开发一个电子商务网站,已进入收尾测试阶段,开发人员把jar包放在远程服务器上由公司测试人员进行调试,问题是发现了BUG 后我们更新svn后还需要重新打包放tomcat里,特别浪费时间....
Ant可以轻松搞定这个问题,即svn与tomcat的同步问题:
1. 先将svn中的项目checkout(第一次checkout,以后update即可)
2. 对项目进行编译,生成classes文件
3. copy到tomcat下
当然有个前提是,你需要在目标机上把ant的环境变量配置好: ANT_HOME 对应ant存放的根目录 在path中加上 ant中bin 的路径,因为是有关svn,所以你要下载svnant.jar包.ok~!
先将项目从svn中checkout出来,在你创建的工作目录中加入build.property build.xml lib包,
build.property 中存放的是一些基本的信息,如: svn的用户名密码
lib.dir=lib
svnant.latest.url=https://***.***.***.***:****/svn/****
svnant.repository.user=*****
svnant.repository.passwd=*****
build.xml中存放的则是具体的动作:
<property name="svn.local" location="svnlocal" />
<property name="java.src" location="${svn.local}/src" />
<property name="java.lib" location="${svn.local}/WebContent/WEB-INF/lib" />
<mkdir dir="${svn.local}/WebContent/WEB-INF/classes" />
<property name="java.dist" location="${svn.local}/WebContent/WEB-INF/classes" />
<property name="tomcat.lib" location="D:/work/tomcat/lib" />
<property name="qst.web" location="D:/work/tomcat/webapps/qst" />
上面是 定义一些常量
把工程从svn中checkout出来:
<target name="checkoutLatest">
<delete dir="svnlocal"/>
<svn username="${svnant.repository.user}" password="${svnant.repository.passwd}">
<checkout url="${svnant.latest.url}" revision="HEAD" destPath="svnlocal" />
</svn>
</target>
进行编译,并copy到tomcat下
<target name="compile" description="Compile all source code" depends="checkoutLatest">
<javac destdir="${java.dist}" debug="false" encoding="UTF-8"
deprecation="false" optimize="false" failοnerrοr="false">
<compilerarg value="-Xlint:unchecked"/>
<src path="${java.src}"/>
<classpath refid="classpath"/>
</javac>
<!-- copy java classes and lib to web-->
<copy todir="${qst.web}" overwrite="yes">
<fileset dir="${svn.local}/WebContent">
<include name="**/*" />
</fileset>
</copy>
</target>
在命令行嵌入ant ........ok
我的认识很浅薄,但是现在没时间在深入研究ant ,只听说貌似很强大...呵呵