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:// ...
随机推荐
- python基础教程笔记—画幅好画(详解)
今天写一下基础教程里面的第二个项目,主要使用python来做一个pdf的图,比较简单. 首先我们需要安装用到的模块pip install reportlab即可. 书上是用urlopen从往上下了一个 ...
- Yii 跨域设置
控制器设置: abstract class ControllerBase extends Controller { public function __construct($id, $module, ...
- 面试题: generate an equation, by inserting operator add ("+") and minus ("-") among the array to make equationExpression == 0
package com.Amazon.interview; /** * @Author: weblee * @Email: likaiweb@163.com * @Blog: http://www.c ...
- HDU 1394 Minimum Inversion Number 线段树
题目: http://acm.hdu.edu.cn/showproblem.php?pid=1394 没看到多组输入,WA了一万次...... 其实很简单,有人暴力过得,我感觉归并排序.二叉排序树求逆 ...
- 2015年9月29日 sql 触发器
触发器(trigger):当有关联操作的时候使用(级联操作),属于ddl关键字. eg:下订单时,创建中的商品数量要减少:退票时,总的票数要增加. 在订单上建立触发器 ...
- 从xib加载文件
一般自定义View, 如果从xib加载文件, 定义一个类方法, 返回xib + (instancetype)dropdown { return [[[NSBundle mainBundle] load ...
- Waterfall———瀑布流布局插件, 类似于 Pinterest、花瓣、发现啦。
瀑布流布局插件, 类似于 Pinterest.花瓣.发现啦. En 中文 文档 下载 下载waterfall插件最新版本. 使用 html: <div id="container&qu ...
- [OI笔记] 最长上升子序列与网络流建模
与最长上升子序列相关的网络流问题: 给定一个序列 A[1..n] ,求出 A 的最长上升子序列长度.并且回答下列询问: (1) 如果每个点只能用一次,能从 A 中取出几个最长上升子序列? (2) 如果 ...
- BZOJ 1754: [Usaco2005 qua]Bull Math
Description Bulls are so much better at math than the cows. They can multiply huge integers together ...
- 用PYTHON + PYWIN32 + WMI获取WINDOWS系统基本信息
网上原码,去了DECODE编码的问题. PyScripter这个PYTHON的IDE工具在WIN下表现不错哟. 感觉比SPYDER,ERIC,SUBLEME TEXT3之类的好用呀.. #!/usr/ ...