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:// ...
随机推荐
- centos7.0安装docker报错
使用centos7.0安装dockers时出现Transaction check error错误. yum install docker Transaction check error: file / ...
- 服务器返回的JSON字符串
异步请求将type设为"json",或者利 用$.getJSON()方法获得服务器返回,那么就不需要eval()方法,因为这时候得到的结果已经是json对象
- [GUIDE] How to install Scipy in Maya Windows 64 bit - Google 网上论坛 - Google Chrome
I've seen a lot of queries about getting scipy working in Maya (Windows 64 bit) with a few not 100% ...
- 我用C#调用C编译的dll中有这样一个函数,函数大概的功能就是把数据保存到buf缓冲区中:
我用C#调用C编译的dll中有这样一个函数,函数大概的功能就是把数据保存到buf缓冲区中: C/C++ code ? 1 int retrieve(int scanno,void* buf); 在 ...
- Aircrack-ng官方文档翻译[中英对照]---Airmon-ng
Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wire ...
- 第 4 章 多例模式【Multition Pattern】
以下内容出自:24种设计模式介绍与6大设计原则 这种情况有没有?有!大点声,有没有? 有!,是,确实有,就出现在明朝,那三国期间的算不算,不算,各自称帝,各有各的地盘,国号不同.大家还记得那首诗< ...
- Uva 10294 Arif in Dhaka (First Love Part 2)
Description 现有一颗含\(N\)个珠子的项链,每个珠子有\(t\)种不同的染色.现求在旋转置换下有多少种本质不同的项链,在旋转和翻转置换下有多少种本质不同的项链.\(N < 51,t ...
- Android使用pull解析xml
一.理论准备 Pull解析器的运行方式与 SAX 解析器相似.它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件.跟SAX不同的是, ...
- ABAP写的一个递归
需求:计算下面树形结构中每个子节点与最上层父节点的对应关系. DATA:BEGIN OF lt_ztab OCCURS 0, a TYPE string, b TYPE str ...
- Web-Scale IT:对企业的影响
本文翻译自文章Web-Scale IT: The Enterprise Impact. 作者Brendan Ziolo 在通信.网络和安全行业有着近20年的经验,在 Sipera Systems,Ce ...