您的位置:首页 > 运维架构 > Linux

linux服务器下用ant实现SVN代码更新

2009-02-04 14:17 387 查看
这段ant脚本主要作用就是:自动从SVN库拉最新的代码,编译、并自动部署到测试服务器。

其中用到了“antsvn” ,有3个jar包需要配置进去


<?xml version="1.0" encoding="UTF-8"?>




<!-- wei.songw 2008.3.19 -->




<project basedir="." name="smmail" default="auto">


<!-- all properties are in build.properties -->


<property file="build.properties" />




<!--svn本身需要的运行库 -->


<path id="svnant.lib">


<pathelement location="${svnjavahl.jar}" />


<pathelement location="${svnant.jar}" />


<pathelement location="${svnClientAdapter.jar}" />


</path>




<!--java EE 1.4 库 -->


<path id="javaEE1.4">


<fileset dir="${javaEE1.4.lib}">


<include name="**/*.jar" />


</fileset>


</path>




<!--项目的classpath库 -->


<path id="project.classpath">


<pathelement location="${build.dir}" />


<fileset dir="${lib.dir}" />


</path>




<!--清理项目任务(干掉下载目录,tomcat原来的部署文件) -->


<target name="clear">


<delete dir="${work.space}" />


<delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}" />


<delete dir="${tomcat.home}/webapps/${ant.project.name}" />


<delete dir="${tomcat.home}/webapps/${ant.project.name}.war" />


</target>




<!-- load the svn task -->


<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />




<!--svn同步任务-->


<target name="svn" depends="clear">


<mkdir dir="${work.space}"/>


<svn username="SongWei" password="Song" javahl="false">


<checkout url="${urlRepos}" destPath="${work.space}" />


</svn>


</target>




<!--编译-->


<target name="compile" depends="svn" description="======compile project======">


<echo message="compile==========>${ant.project.name}: ${ant.file}" />


<mkdir dir="${build.dir}" />




<copy includeemptydirs="false" todir="${build.dir}">


<fileset dir="${java.source}" excludes="**/*.launch, **/*.java, config/*.*"/>


</copy>


<copy includeemptydirs="false" todir="${build.dir}">


<fileset dir="${java.config}" excludes="**/*.launch, **/*.java"/>


</copy>




<javac includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build.dir}" source="${source}" target="${target}" encoding="utf-8">


<src path="${java.source}" />


<exclude name="config/"/>


<classpath>


<path refid="project.classpath">


</path>


<path refid="javaEE1.4">


</path>


</classpath>


</javac>




<javac debug="true" debuglevel="${debuglevel}" destdir="${build.dir}" source="${source}" target="${target}" encoding="utf-8">


<src path="${java.config}" />


</javac>




</target>




<!--压缩,打包-->


<target name="war" depends="compile" description="======compress j2ee war file======">


<mkdir dir="${dist.dir}" />


<!--compress j2ee war file-->


<war destfile="${war.file}" webxml="${web.dir}/WEB-INF/web.xml">


<fileset dir="${web.dir}" />


<classes dir="${build.dir}" />


<lib dir="${lib.dir}" />


</war>


</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="false"></exec>


</target>




<!--部署到tomcat下面克-->


<target name="deploy" depends="war">


<copy file="${war.file}" todir="${tomcat.home}/webapps" />


</target>




<!--全自动无敌部署,启动关闭tomcat-->


<target name="auto" depends="shutdowntomcat,deploy,startuptomcat">


<echo message="DONE!!!!" />


</target>


</project>

下面是build.xml指定的properties文件,需要和build.xml放在同一个目录下面

需要指定work.space(svn拉下来代码的存放,已经编译,打包用的临时目录)

tomcat.home(tomcat服务器的根目录,如果是其他服务器,需要修改对应项)

===============================================

build.version=1.0.0

svnant.jar=/usr/java/svn/svnant.jar
svnClientAdapter.jar=/usr/java/svn/svnClientAdapter.jar
svnjavahl.jar=/usr/java/svn/svnjavahl.jar
javaEE1.4.lib=/usr/javaEE-1.4

debuglevel=source,lines
target=1.6
source=1.6

work.space=/home/gmail/workspace
dist.dir=${work.space}

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}/src/config

web.dir=${work.space}/WebRoot
resource.dir=${work.space}/resources

tomcat.home=/home/gmail/tomcat6
war.file=${dist.dir}/${ant.project.name}.war

urlRepos=svn://192.168.1.100/product/SMMAIL/Develop
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: