ant + svn 自动部署项目

疏雨过 2013-07-23

build.properties

# -----------------------------------------------------------------------------
# build.properties
# This file is referenced by the sample build.xml file.
# -----------------------------------------------------------------------------

build.version=1.0.0
 
#you need these jars
svnant.jar=/usr/local/ant/lib/svnant.jar
svnClientAdapter.jar=/usr/local/ant/lib/svnClientAdapter.jar
svnjavahl.jar=/usr/local/ant/lib/svnjavahl.jar
javaEE.lib=/opt/tomcat-7/lib
 
#tomcat information
#tomcat home
tomcat.home=/opt/tomcat-7
#tomcat project deploy dir              
tomcat.deploy=${tomcat.home}/webapps/${ant.project.name}
 
debuglevel=source,lines
target=1.6
source=1.6
 
work.space=/tmp/project
 
build.dir=${work.space}/WebRoot/WEB-INF/classes
lib.dir=${work.space}/WebRoot/WEB-INF/lib
 
java.source=${work.space}/src
java.config=${work.space}/config
 
web.dir=${work.space}/WebRoot
resource.dir=${work.space}/resources

zip.file=${tomcat.deploy}/${ant.project.name}.zip
 
#project information in SVN 
urlRepos=svn://192.168.1.114/project/lottery
svn.user=xxx
svn.passwd=xxxx


build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="lottery" default="auto">
 <!--  all properties are in build.properties -->
 <property file="build.properties" />
 <!-- svn runtime libs -->
 <path id="svnant.lib">  
         <pathelement location="${svnjavahl.jar}" />  
         <pathelement location="${svnant.jar}" />  
         <pathelement location="${svnClientAdapter.jar}" />  
 </path>  
 <!--java EE  库 -->  
     <path id="javaEE">  
         <fileset dir="${javaEE.lib}">  
             <include name="**/*.jar" />  
         </fileset>  
     </path>  

 <!-- load the libs in classpath -->
 <path id="project.classpath">
 <pathelement location="${build.dir}"/>
 <fileset dir="${lib.dir}"/>
 </path>
 
 <!-- clean up -->

 <target name="clear">
 <delete dir="${work.space}"></delete>
 <delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}"></delete>
 <delete dir="${tomcat.deploy}/${ant.project.name}"></delete>
 <delete dir="${tomcat.deploy}/${ant.project.name}.war"></delete>
 </target>
 <!-- load the svn task -->
 <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classdata-path="svnant.jar" />
 <svnSetting id="svn.settings" javahl="false" svnkit="true" username="${svn.user}" password="${svn.passwd}" />

 <!--svn checkout-->
 <target name="svn" depends="clear">
 <mkdir dir="${work.space}"/>
 <svn refid="svn.settings">
 <checkout url="${urlRepos}" destdata-path="${work.space}" />
 </svn>
 </target>
 <!--compile the project-->
 
 <target name="compile" depends="svn" description="----------compile ${ant.project.name}-----------">
 <echo message="----------compile ${ant.project.name}:${ant.file}-----------"></echo>
 <mkdir dir="${build.dir}"/>
 <copy includeemptydirs="false" todir="${build.dir}">
 <fileset dir="${java.source}" excludes="**/*.launch, **/*.java"></fileset>
 <fileset dir="${java.config}" excludes="**/*.launch, **/*.java"></fileset>
 </copy>
 
 <javac  includeantruntime="false" includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build.dir}" source="${source}" target="${target}" encoding="utf-8">  
             <src data-path="${java.source}" />  
             <exclude name="config/"/>  
             <classpath>  
                 <path refid="project.classpath">  
                 </path>  
                 <path refid="javaEE">  
                 </path>  
   
             </classpath>  
             <compilerarg value="-Xlint:unchecked"/>  
         <compilerarg value="-Xlint:deprecation"/>  
     </javac>
 
 </target>
 <!--compress and pack -->
 <!--deploy to the tomcat project dir-->
    <target name="deploy" depends="compile">
     <mkdir dir="${tomcat.home}/webapps/${ant.project.name}"/>
     <zip destfile="${zip.file}">
          <zipfileset dir="${web.dir}"/>
     </zip>
     <unzip dest="${tomcat.home}/webapps/${ant.project.name}" overwrite="true" src="${zip.file}"/>
     
 </target>
 
 <!--shutdowntomcat-->

 <target name="shutdowntomcat" description="========shutdowntomcat===========">
 <exec executable="${tomcat.home}/bin/shutdown.sh" failonerror="false">
 </exec>
 <sleep seconds="10" />
 </target>
 <!--startuptomcat-->

 <target name="startuptomcat" description="========startuptomcat===========">
 <sleep seconds="5" />
 <exec executable="${tomcat.home}/bin/startup.sh" failonerror="true" >
 </exec>
 </target>

 <!--Done,restart tomcat-->

 <target name="auto" depends="shutdowntomcat,deploy,startuptomcat">
 <echo message="All DONE!!!!" />
 </target>
</project>

  在安装了ant的环境下面运行 build.xml

上面的tomcat的目录需要自己制定,svn的信息也需要自己设定,配置信息都在build.properties文件中

相关推荐

知其然知其所以然 / 0评论 2010-10-14