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:// ...
随机推荐
- H5 required 改变错误提示oninvalid、oninput、onforminput
<input type="text" name="password" oninvalid="this.setCustomValidity('XX ...
- PHP获取IP地址所在的地理位置
1.http://ip.qq.com/cgi-bin/searchip?searchip1=XXX 2.http://int.dpool.sina.com.cn/iplookup/iplookup.p ...
- Docker 安装jupyter notebook
1. 利用image运行一个container sudo docker run -it --net=host tingting --net=host:让container可以上网,安装原来的sudo ...
- Java 判断操作系统类型(适用于各种操作系统)
Java 判断操作系统类型(适用于各种操作系统) 最近一段时间写一个授权的程序,需要获取很多信息来保证程序不能随意复制使用,必须经过授权才可以. 为了限制用户使用的操作系统,必须有统一的方法来获取才可 ...
- 使用ImageMagick和Tesseract进行简单数字图像识别
使用ImageMagick和Tesseract进行简单数字图像识别 由于直接使用 tesseract 进行识别,识别率很低, ImageMagick 安装.配置及使用: 平台:winXP 1. 安装I ...
- python 遍历字典
dict={"a":"apple","b":"banana","o":"orange&qu ...
- settimeout vs setinternal
http://blog.sina.com.cn/s/blog_6b1ab3be0100pzmo.html http://www.360doc.com/content/11/0412/17/100779 ...
- SPRING IN ACTION 第4版笔记-第一章-005-Bean的生命周期
一. 1. As you can see, a bean factory performs several setup steps before a bean is ready touse. Let’ ...
- IPVS实现分析
IPVS实现分析 IPVS实现分析 根据LVS官方网站的介绍,LVS支持三种负载均衡模式:NAT,tunnel和direct routing(DR). NAT是通用模式,所有交互数据必须通过均衡器:后 ...
- Https 原理
HTTPS其实是有两部分组成:HTTP + SSL / TLS, 也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据 1. ...