`

ant + svn 自动部署项目

阅读更多
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文件中

 

分享到:
评论

相关推荐

    ANT+SVN+TOMCAT之自动部署

    写这篇文章的时候我在想该不该...自己也是第一次写ant的build.xml文件,就发现网上总是些零散的内容,东拼西凑找文档,有没有一遍完整的内容呢?和我一样的新手应该也会这么困惑!想到这里,觉得或许可以对您带来帮助!

    利用ant脚本 自动构建svn增量.docx

    标签: antsvn自动化测试发布  分类: ant 不会用ant打包、部署项目的工程师,不是一个好程序员(测试) 副标题:利用ant脚本 自动构建svn增量/全量 系统程序升级包 首先请允许我这样说,作为开发或测试,你一定要...

    基于Jenkins的自动化部署

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能,通过Jenkins和Ant以及SVN整合,可以比较容易的实现通过SVN获取源代码更新,然后应用Ant自动编译打包,然后部署到相应的...

    基于jenkins整合ant和svn的持续集成环境

    通过jenkins和ant以及svn进行整合,可以完成对系统的源代码的自动下载更新,以及代码的自动编译打包和项目的自动部署(项目的自动构建部署)。而且项目的自动构建部署和平台无关,不限定时间,可以定时操作,将开发...

    使用jenkins直接将svn代码部署到tomcat

    通过jenkins和ant以及svn进行整合,可以完成对系统的源代码的自动下载更新,以及代码的自动编译打包和项目的自动部署(项目的自动构建部署)

    windows2003中SVN服务器异机同步、自动部署Java项目全流程

    windows2003中SVN服务器异机同步、自动部署Java项目全流程. 由VisualSVN Server自动更新本地代码、编译代码、部署代码、重启Tomcat。

    web程序自动部署

    原理:从svn down代码、ant编译、打包项目、上传zip包、代码同步、解压、重启web容器 由于开发的比较着急,代码写的有点乱、忘谅解,仅供参考。 代码分为两部分(写在了同一个项目中),①功能部分②调用服务器端...

    软件协同开发服务器端自动部署配置.doc

    通过 SVN、ANT、TOMCAT、HUNSON 实现Java项目的版本控制及项目自动部署。客户端要做的只需要安装SVN提交代码即可。

    svn按时间提取更新文件(增量更新)

    2.“class文件根目录”就是项目真正部署需要的文件,比如:D:/workspace/locoso/WebContent ; 3."目标文件夹"就是筛选出来文件需要保存的目录,不会自动生成项目文件夹的,最好不要放到c盘,因为有些目录需要权限...

    新浪sea云java开发包及工具集成,包括sae-1.1.0-all,svn6个jar包,sae-eclipse

    实现便捷的在本地 eclipse 上开发,在 sae 云服务器上部署和调试,实现在 eclipse 上编译 java web 项目的时候自动生成 war 包,然后再自动通过 svn 上传部署到新浪 sae 云平台的流程,1. 下载 Eclipse 4.2 or 4.3 ...

    jenkins持续集成环境搭建步骤

    jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、...

    iuhyiuhkjh908u0980

    选择项目目录结构:一个项目开始的时候,选择一个合适的项目目录结构,是一件很重要的事情,可能你会很习惯由IDE自动创建的目录结构,如Elcipse或JB,但有些时候,这样的目录结构可能并不是最好的,所以,在项目开始...

    Jenkins持续集成引擎.rar

    Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java...

    Jenkins使用及插件开发介绍

    介绍Jenkins是一个广泛用于[持续构建]()的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署,将以前编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址,将代码拉取到...

    达内java培训目录

    企业应用开发部署环境 Linux高级命令集脚本编程、远程登录、Ant、单元测试技术、Maven构建技术、SVN应用技术。 熟练掌握基于Linux系统的操作技能;可以熟练的完成应用的部署工作;可以熟练的使用开发部署工具。 ...

    maven window下安装包

    第11章:用Maven管理项目版本/11.4 版本管理举例/11.4.3 将项目保存到SVN(SVN:版本管理工具) 第11章:用Maven管理项目版本/11.4 版本管理举例/11.4.4 在POM中配置SVN地址 第11章:用Maven管理项目版本/11.4 版本...

Global site tag (gtag.js) - Google Analytics