- 建立一个build.properties文件,方便后期的维护
project.lib=D:/lifeServer/WebContent/WEB-INF/lib
tomcat.lib=C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/lib
tomcat.home=C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0
project.dest=D:/lifeServer/WebContent/WEB-INF/classes
svn.url=https://server-pc/svn/mobile2015/diningApp/sources/server/lifeServer
svn.username=boyaoyao
svn.userpw=boyaoyao
svn.revision=HEAD
project.webApp=D:/lifeServer
tomcat.webApp=C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/webapps
img.source=C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/webapps/lifeServer/upload
img.to=D:/lifeServerImg
- 编写build.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="lifeServer" default="tomcat.start" basedir="../">
<tstamp>
<format property="TIMESTAMP" pattern="yyyyMMddHHmmss"/>
</tstamp>
<record name="log${TIMESTAMP}.txt" loglevel="verbose" append="no" action="start"/>
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant" />
<path id="path.svnant">
<pathelement location="D:/apache-ant-1.9.6/lib/svnant.jar"/>
<pathelement location="D:/apache-ant-1.9.6/lib/svnClientAdapter.jar"/>
<pathelement location="D:/apache-ant-1.9.6/lib/svnjavahl.jar"/>
<pathelement location="D:/apache-ant-1.9.6/lib/svnkit-1.7.8.jar"/>
<pathelement location="D:/apache-ant-1.9.6/lib/ganymed.jar" />
<pathelement location="D:/apache-ant-1.9.6/lib/svnkit-javahl16-1.7.8.jar" />
<pathelement location="D:/apache-ant-1.9.6/lib/sqljet-1.1.6.jar" />
<pathelement location="D:/apache-ant-1.9.6/lib/antlr-runtime-3.4.jar" />
<pathelement location="D:/apache-ant-1.9.6/lib/sequence-library-1.0.2.jar" />
</path>
<path id="classpath">
<fileset dir="${project.lib}">
<include name="*.jar" />
</fileset>
<fileset dir="${tomcat.lib}">
<include name="*.jar" />
</fileset>
</path>
<svnSetting id="svnsettings" svnkit="true" javahl="false" username="${svn.username}" password="${svn.userpw}" />
<target name="tomcat.stop">
<java jar="${tomcat.home}/bin/bootstrap.jar" fork="true">
<jvmarg value="-Dcatalina.home=${tomcat.home}"/>
<arg line="stop"/>
</java>
<exec executable="killtomcat.bat" dir="C:/AutoAntCheck">
</exec>
</target>
<target name="copyOld" depends="tomcat.stop">
<copy todir="${img.to}">
<fileset dir="${img.source}">
<include name="***" />
</fileset>
</copy>
</target>
<target name="clean" depends="copyOld">
<delete dir="${project.webApp}"/>
<mkdir dir="${project.webApp}"/>
</target>
<target name="checkoutThis" depends="clean">
<svn refid="svnsettings" >
<checkout url="${svn.url}" revision="${svn.revision}" destPath="${project.webApp}"/>
<info target="${project.webApp}" verbose="true"/>
</svn>
</target>
<target name="compile" depends="checkoutThis">
<javac encoding="utf-8" srcdir="${project.webApp}/src" destdir="${project.dest}" debug="false" nowarn="true" deprecation="false" optimize="false" failonerror="true">
<classpath refid="classpath" />
</javac>
</target>
<target name="war" depends="compile">
<war destfile="${tomcat.webApp}/lifeServer.war" webxml="${project.webApp}/WebContent/WEB-INF/web.xml" >
<fileset dir="${project.webApp}/WebContent" excludes="**/*.jar"/>
<fileset dir="${project.webApp}/res" excludes="**/*.jar"/>
<lib dir="${project.lib}" />
<classes dir="${project.dest}" />
</war>
</target>
<target name="copyNew" depends="war">
<copy todir="${img.source}">
<fileset dir="${img.to}">
<include name="***" />
</fileset>
</copy>
</target>
<target name="tomcat.start" depends="copyNew">
<java jar="${tomcat.home}/bin/bootstrap.jar" fork="true" >
<jvmarg value="-Dcatalina.home=${tomcat.home}" />
</java>
</target>
</project>
- 编写bat文件
@ echo 先回到根目录
cd /
@ echo 再去找build.xml的目录,因为要做windows下的计划任务 要启动这个文件, 路径这么写安全一些
cd C:\AutoAntCheck
@ echo 去读我们写的properties文件
ant -propertyfile build.properties
- 上面说道需要杀掉一个端口号对应的进程,这里有bat文件
FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr :这里写你要杀进程的端口号') DO TaskKill.exe /PID %%P /F
- 如果想进行windows的计划任务实现定时定点进行构建项目的话,在计划和任务中定时打开上面第3个bat文件就可以了