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:// ...
随机推荐
- php类的方法
方法就是在类中的function,很多时候我们分不清方法与函数有什么差别,在面向过程的程序设计中function叫做函数,在面向对象中function则被称之为方法. 同属性一样,类的方法也具有pub ...
- Codeforces Round #336 (Div. 1) A - Chain Reaction
Chain Reaction 题意:有n(1 ≤ n ≤ 100 000) 个灯泡,每个灯泡有一个位置a以及向左照亮的范围b (0 <= a <= 1e6 ,1<= b <= ...
- codeforces 278Div1 B题
虚拟参赛的时候没想到是线段树,看到很多人都过了,也蛮着急的. 首先用二分+线段树的方法更新DP[i]:它表示以A[i]为结尾可以最前到哪个位置: 再用线段树计算ans[i]:它表示当前i个A元素可以最 ...
- CSS标签居中
CSS标签居中是相对于父标签说的,即在父标签的中居中.通常是在子标签中使用margin:0 auto,来使子标签居中.此外子标签需要有固定的宽度才行,比如 子标签为div时,div的宽度默认占父标签的 ...
- nutch http file 截断问题
问题: 列表页预计抽取 355+6 但实际只抽取到220条链接. 原因是nutch对http下载的内容的长度进行了限制. 解决方案:这里将这个属性扩大10倍. vim conf/nutch-defal ...
- python中的单下划线和双下划线意义和作用
Python中并没有真正意义上的“私有”,类的属性的的可见性取决于属性的名字(这里的属性包括了函数).例如,以单下划线开头的属性(例如_spam),应被当成API中非公有的部分(但是注意,它们仍然可以 ...
- [wikioi]多源最短路
http://wikioi.com/problem/1077/ Floyd算法.精华是三层循环,if (dist(i,k) + dist(k,j) < dist(i,j)) then dist( ...
- java中的单例模式与doublecheck
转自: http://devbean.blog.51cto.com/448512/203501 在GoF的23种设计模式中,单例模式是比较简单的一种.然而,有时候越是简单的东西越容易出现问题.下面就单 ...
- SPRING IN ACTION 第4版笔记-第二章-002-@ComponentScan、@Autowired的用法
一.@ComponentScan 1. @Configuration //说明此类是配置文件 @ComponentScan //开启扫描,会扫描当前类的包及其子包 public class CDPla ...
- jquery 提示插件 cluetip
jquery的 插件cluetip, 地址下载是:plugins.learningjquery.com/cluetip/demo/ 下面简单讲解下用法: 1 首先当然要放JQUERY的基本JS,和这个 ...