ant+svn+tomcat实现项目自动部署
因工作需要,研究并实现了 ant+svn+tomcat实现项目自动部署,其中参考了下面文章:http://www.cnblogs.com/taoweiji/p/3700915.html
jar包需要eclipse的jar和svn的部分jar,已整理好,直接放入ant中lib下即可。
除ant外其他所需jar包 下载地址:http://files.cnblogs.com/files/haha12/%E9%99%A4ant%E5%A4%96%E5%85%B6%E4%BB%96%E6%89%80%E9%9C%80jar%E5%8C%85.rar
完整的build.xml如下,直接执行ant命令即可实现 自动登录svn、下载代码、编译、打war包、停止tomcat服务、拷贝到对应目录、启动tomcat服务、结束、
<?xml version="1.0" encoding="UTF-8"?>
<project name="testweb" default="deploy" basedir=".">
<property name="webapp.name" value="testweb"/>
<property name="catalina.home" value="D:\testweb\tomcat_test"/>
<property name="dist.dir" value="${basedir}"/>
<property name="ant.home" value="D:\testweb\apache-ant-1.9.5" />
<property name="webRoot.dir" value="${basedir}/${webapp.name}/WebContent"/>
<property name="src.dir1" value="${basedir}/${webapp.name}/src"/>
<property name="src.dir2" value="${basedir}/${webapp.name}/syssrc"/>
<property name="lib.dir" value="${webRoot.dir}/WEB-INF/lib"/>
<property name="class.dir" value="${webRoot.dir}/WEB-INF/classes"/>
<property name="svn.UserName" value="user" />
<property name="svn.UserPassword" value="pass" />
<property name="svn.URL" value="https://192.168.0.1/svn/test" />
<property name="svn.Dist" value="${basedir}/${webapp.name}" />
<!-- 目前使用执行bat命令发布 --> <!-- 由于代码有泛型,必须使用 jdt编译,引入4个eclipse的jar即可。 -->
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> <!-- SVN ANT -->
<path id="ant.svn.classpath">
<fileset dir="${ant.home}/lib">
<include name="*.jar" />
</fileset>
</path>
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">
<classpath refid="ant.svn.classpath" />
</taskdef>
<target name="checkout" description="checkout full web project">
<delete dir="${basedir}/${webapp.name}"/>
<svn username="${svn.UserName}" password="${svn.UserPassword}">
<checkout url="${svn.URL}" revision="HEAD" destPath="${svn.Dist}" />
</svn>
</target> <path id="compile.classpath">
<fileset dir="${catalina.home}/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path> <!-- 初始化,建立目录,将多个src目录复制到同一src目录 depends="checkout" -->
<target name="copysrc" description="将多个src目录复制到同一src目录" depends="checkout">
<copy todir="${src.dir1}">
<fileset dir="${src.dir2}">
</fileset>
</copy>
</target> <target name="clean" depends="copysrc">
<delete dir="${class.dir}"/>
</target> <target name="compile" depends="clean">
<mkdir dir="${class.dir}"/>
<javac srcdir="${src.dir1}" destdir="${class.dir}" encoding="utf-8" source="1.6" target="1.6" nowarn="true" includeantruntime ="on">
<compilerarg value="-Xlint:unchecked "/> <!-- 就是这句话!! -->
<compilerarg value="-Xlint:deprecation "/> <!-- 就是这句话!! -->
<classpath refid="compile.classpath"/>
</javac>
</target>
<!-- 拷贝资源文件 -->
<target name="copyres" depends="compile">
<copy todir="${class.dir}">
<fileset dir="${src.dir1}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<!-- 生成war包 -->
<target name="createwar" depends="copyres">
<delete file="${dist.dir}/${webapp.name}.war"/>
<war destfile="${dist.dir}/${webapp.name}.war">
<fileset dir="${webRoot.dir}"/>
</war>
</target> <target name="shutdowntomcat" description="Install web application" >
<echo message="正在关闭服务器。。。" />
<exec executable="${catalina.home}/bin/shutdown.bat" failonerror="false"></exec>
<echo message="服务器成功关闭" />
<sleep seconds="10"/>
<!-- 删除之前解压的war包-->
<delete dir="${catalina.home}/webapps/${webapp.name}"></delete>
<delete dir="${catalina.home}/webapps/${webapp.name}.war"></delete>
</target> <target name="startuptomcat" description="Remove web application" >
<sleep seconds="10"/>
<echo message="正在启动服务器。。。" />
<exec executable="${catalina.home}/bin/startup.bat" failonerror="false"></exec>
<echo message="服务器启动成功" />
</target> <!--部署到tomcat下面,如果系统有多个tomcat,不能配置系统变量:CATALINA_HOME,可以直接修改 bat文件 -->
<target name="deploy" depends="createwar">
<ant target="shutdowntomcat"/>
<!-- 拷贝war包-->
<copy file="${dist.dir}/${webapp.name}.war" todir="${catalina.home}/webapps" />
<ant target="startuptomcat"/>
</target> </project>
ant+svn+tomcat实现项目自动部署的更多相关文章
- 【Tomcat】项目自动部署的链接重置错误
在服务器中装好的tomcat7 ,(服务器是的window server 2008) 在tomcat bin目录运行的 service.bat install 安装服务.然后,设置服务项(服务项名称: ...
- ant+svn+tomcat实现自动构建
前段时间用做了一个简单的web api服务,在调试的过程中感觉到手动发布实在是效率低而且容易出错,于是花点时间搞了一下ant+svn+tomcat的自动构建,效果不错,今天拿出来分享一下. 准备工作 ...
- Eclipse中的Web项目自动部署到Tomcat
原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...
- [转]Eclipse中的Web项目自动部署到Tomcat
原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...
- myeclipse + tomcat 项目自动部署
在MyEclipse中设置项目的自动部署需要综合考虑两个方面: 1是MyEclipse本身,通过主菜单中project->auto ,另一个就是tomcat配置文件.配置文件包括 conf 下的 ...
- Eclipse中WEB项目自动部署到Tomcat
原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...
- Eclipse中的Web项目自动部署到Tomcat(转)
转自:http://www.cnblogs.com/ywl925/p/3815173.html 问题: 这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Eclipse中做 ...
- Eclipse中的Web项目自动部署到Tomcat的webapp目录下
Eclipse中的Web项目自动部署到Tomcat 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 ...
- CentOS的SVN服务器搭建与自动部署全过程
CentOS的SVN服务器搭建与自动部署全过程 http://www.jb51.net/article/106218.htm authz-db = authz 引起的 svn 认证失败 http:// ...
随机推荐
- jquery解析XML(1)
jquery解析XML文件 html代码 <!DOCTYPE html><html><head><title>解析XML</title>&l ...
- div+css3实现漂亮的多彩标签云,鼠标移动会有动画
div+css3实现漂亮的多彩标签云,鼠标移动会有动画 点击运行效果 <style> .dict { margin: 20px 0;clear:both ;text-align:left; ...
- php curl模拟post请求提交数据
最近在做校园图书馆图书信息的采集程序,既然是图书馆图书的采集,肯定有提交搜索的页面,无非是post提交,让我想到了curl模拟提交,首先通过firebug进行抓包查询下post提交后的格式如下: tx ...
- Activity与WindowManagerService服务的连接过程分析
Activity组件与WindowManagerService服务之间的连接模型如下图所示: 1. Activity组件 -> WindowManagerService的连接 Activity会 ...
- python调用Moxa PCOMM Lite通过串口Ymodem协议发送文件
本文采用python 2.7编写. 经过长期搜寻,终于找到了Moxa PCOMM Lite.调用PCOMM.DLL可以非常方便的通过串口的Xmodem.Ymodem.Zmodem等协议传输文件,而无需 ...
- 3D 服务器端以向量计算为主的角色位置的算法
把我以前学习过的一个东西拿出来分享下~ 3D服务器端玩家行走处理是服务器端根据客户端行走路径.玩家行走时间以及速度(包括变化速度)计算得出玩家的当前位置. 由于客户端行走是一条路径,不使用2D中的格子 ...
- 在ubuntu12.0.4上搭建samba服务器以实现文件共享
在安装之前samba服务器之前,先进行以下配置和测试. <壹> 准备工作 一.NAT联网方式 (1)硬件连接 无需网线,无需路由器 (2)虚拟机选择NAT连接方式 (3)测试网络通不通 在 ...
- POJ 2442 Sequence 优先队列
题目: http://poj.org/problem?id=2442 #include <stdio.h> #include <string.h> #include <q ...
- CoreGraphics --- 翻转坐标系
1. 由于CoreGraphics 的坐标系与手机屏幕坐标系的Y轴是相反的, 所以在我们开发的时候, 需要翻转坐标系; - (void)drawRect:(CGRect)rect { CGContex ...
- virtualBox ubuntu 文件共享
如何将主机中的文件共享到虚拟机中: 1. 查看/dev中的文件 命令:ls /dev 2. 找到 cdrom1 ,直接挂载到/mnt 命令:sudo mount /dev/cdrom1 /mnt ...