前段时间用做了一个简单的web api服务,在调试的过程中感觉到手动发布实在是效率低而且容易出错,于是花点时间搞了一下ant+svn+tomcat的自动构建,效果不错,今天拿出来分享一下。

  • 准备工作

SVN服务器:VisualSVN-Server-2.5.8.msi,这windows下比较好用的一个svn服务端,安装和配置都很简单。

Ant: Ant 1.7(我用的比较老的版本)。

Ant插件:svnant1.3(http://subclipse.tigris.org/svnant.html), ANT集成SVN的插件。

    需要安装Subversion。http://subversion.apache.org/download/#pre-releases

  • 步骤
  1. 首先安装配置好SVN服务器和ANT(具体的过程我就不累赘了)。
  2. 安装svnant插件,将svnant.1.3.0解压后的lib目录下所有的jar包拷贝至Ant安装目录下的lib文件夹。
  3. 编写脚本,如下

build.xml

<project name="daka_main" basedir=".">  

    <!--############################################################项目目录 -->  

    <!--项目根-->
<property name="project" value="project" />
<property name="src" value="${project}/src" />
<property name="resources" value="${project}/src"/>
<property name="test" value="${project}/test"></property>
<property name="target" value="${project}/target"></property>
<property name="main-target" value="${project}/target/classes"/>
<property name="test-target" value="${project}/target/test-classes"/>
<!--web 目录 -->
<property name="web-root" value="${project}/WebRoot"/> <!-- ant 属性文件 -->
<property file="build.properties"/> <!--############################################################软件依赖 -->
<!--ant lib目录-->
<property name="ant-lib" value="${ant.home}/lib"/>
<!-- tomcat lib目录 -->
<property name="tomcat-lib" value="${tomcat.home}/lib"/> <!-- 定义classpath-->
<path id="classpath">
<fileset dir="${ant-lib}" includes="***.jar"></fileset>
<fileset dir="${tomcat-lib}" includes="***.jar"></fileset>
<fileset dir="${web-root}/WEB-INF/lib" includes="***.jar"></fileset>
</path> <!-- 清理-->
<target name="clean">
<delete dir="${project}"></delete>
</target>
<!-- 初始化-->
<target name="init" depends="clean">
<mkdir dir="${project}"/>
<mkdir dir="${main-target}"/>
<mkdir dir="${test-target}"/>
</target> <!-- 检出代码 这里使用 export 不是checkout 二者区别 checkout会svn相关信息文件检出,export只是检出最新的文件-->
<path id="path.svnant">
<fileset dir="${basedir}">
<include name="**/*.jar"/>
</fileset>
</path> <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>
<target name="checkout" depends="init">
<svnSetting id="svnparams" username="${svn.username}" password="${svn.password}" javahl="false"/>
<svn refid="svnparams">
<checkout url="${svn.url}" destPath="${project}" />
</svn>
</target> <!-- 编译 -->
<target name="compile" depends="checkout">
<javac srcdir="${src}" destdir="${main-target}" encoding="UTF-8" includeAntRuntime="false">
<classpath refid="classpath"></classpath>
</javac>
<copy todir="${main-target}">
<fileset dir="${resources}">
<exclude name="sql/**"/>
</fileset>
</copy>
</target>
<!-- 打war包 -->
<target name="build" depends="compile"> <war destfile="${target}/${deploy.name}.war" webxml="${web-root}/WEB-INF/web.xml">
<fileset dir="${web-root}"></fileset>
<classes dir="${main-target}"></classes>
</war>
<delete dir="${main-target}"></delete>
<delete dir="${test-target}"></delete>
</target> <!--shutdowntomcat --> <target name="shutdowntomcat" description="========shutdowntomcat===========">
<echo message="正在关闭服务器。。。" />
<exec executable="${tomcat.home}/bin/shutdown.bat" failonerror="false"></exec>
<echo message="服务器成功关闭" />
<sleep seconds="10"/>
<!-- 删除之前解压的war包-->
<delete dir="${tomcat.home}/webapps/${deploy.name}"></delete>
</target> <!--startuptomcat -->
<target name="startuptomcat" description="========startuptomcat===========">
<sleep seconds="5"/>
<echo message="正在启动服务器。。。" />
<exec executable="${tomcat.home}/bin/startup.bat" failonerror="false"></exec>
<echo message="服务器启动成功" />
</target> <!--部署到tomcat下面 -->
<target name="deploy" depends="build">
<ant target="shutdowntomcat"/>
<copy file="${target}/${deploy.name}.war" todir="${tomcat.home}/webapps" />
<ant target="startuptomcat"/>
</target> </project>

build.properties文件如下:

  1. tomcat.home=D:/apache-tomcat-6.0.35
  2. ant.home=D:/apache-ant-1.7.1
  3. svn.url=https://hjt2012.com/svn/java/branches/imweb
  4. svn.username=svn
  5. svn.password=123456
  6. deploy.name=imweb
  • 执行脚本

可以编写一个bat批处理文件,这样在执行的时候只需要双击一下就可以完全搞定。

bat文件如下:

  1. @echo off
  2. d:
  3. cd imweb
  4. ant deploy
  5. exit

ant+svn+tomcat实现自动构建的更多相关文章

  1. ant+svn+tomcat实现项目自动部署

    因工作需要,研究并实现了 ant+svn+tomcat实现项目自动部署,其中参考了下面文章:http://www.cnblogs.com/taoweiji/p/3700915.html jar包需要e ...

  2. jenkins+maven+git+tomcat+salt自动构建

    jenkins 安装步骤 环境: centos7,jdk1.8.0,jenkins2.165,maven3.5.2 一. 安装配置java环境   JDK1.8下载地址:http://www.orac ...

  3. 利用ant脚本 自动构建svn增量/全量 系统程序升级包

    首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...

  4. 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】

    引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...

  5. Ant + Jenkies +Tomcat 自动构建部署Web项目

    前言:博主资历尚浅,很多东西都还在刚起步学习的阶段,这几天开发任务比较轻,就在自己window系统下,模拟部署远程服务器,利用Jenkies + Ant + Tomcat 搭建了一个自动发布部署的环境 ...

  6. jenkins 整合maven,svn(配置钩子程序实现提交代码自动构建),tomcat实现热部署(windows+linux分别实现)

    springboot : https://blog.csdn.net/zjh_746140129/article/details/80904876 1 准备工作: (1)运行jenkins的tomca ...

  7. tomcat+svn+maven+jenkins实现自动构建

    首先说明一个各软件的版本: tomcat:apache-tomcat-8.5.16.tar.gz maven:apache-maven-3.5.0-bin.tar.gz svn:subversion- ...

  8. 用Ant实现Java项目的自动构建和部署

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml         本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...

  9. 用Ant实现Java项目的自动构建和部署(转)

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

随机推荐

  1. P2484 [SDOI2011]打地鼠

    差分 代码: #include <bits/stdc++.h> using namespace std; #define INF 1999999999 ][],b[][],c[][]; i ...

  2. hdu 2825

    题解: ac自动机+dp的题目 差不多都一个套路 记录枚举了i位,匹配到自动机上的x位,然后对于匹配了哪些单词状态压缩一下就可以了 代码: #include <bits/stdc++.h> ...

  3. python全栈开发day47-jqurey

    一.昨日内容回顾 二.今日内容总结 1.jquery的介绍 1).为什么要用jquery? # window.onload 事件有事件覆盖的问题,因此只能写一个事件. # 代码容错性差 # 浏览器兼容 ...

  4. JQuery操作元素的属性与样式及位置

    <script type="text/javascript" src="JQuery/jquery-1.5.1.js"></script> ...

  5. 字符串处理-Hdu1004

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004 题目大意:给你一个数n,要求输入n个字符串,在这n个字符串中,我们需要输出出现次数最多的字符串. ...

  6. web漏洞扫描工具AWVS使用

    AWVS AWVS简介:Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞,如交叉站点脚 ...

  7. serialVersionUID 序列化

    http://www.mkyong.com/java-best-practices/understand-the-serialversionuid/ 简单来说,Java的序列化机制是通过在运行时判断类 ...

  8. Luogu2570 [ZJOI2010]贪吃的老鼠 ---- 网络流

    Luogu2570  [ZJOI2010]贪吃的老鼠 题面描述 https://www.luogu.org/problemnew/show/P2570 然后题意大概就是m只老鼠,然后吃n个奶酪,已知 ...

  9. Mac如何找到从AppStore下载的正版Xcode安装包、以及Xcode清理缓存

    前言:本文介绍在Mac下如何找到AppStore下载的安装包路径,以及如何提取出来供以后使用,希望对大家有所帮助(前提:想要提取某个安装包,前提是你正在从AppStore安装这个程序.比如你想提取im ...

  10. .NetCore中EFCore的使用整理

    EntirtyFramework框架是一个轻量级的可扩展版本的流行实体框架数据访问技术. 其中的.NetCore版本对应EntityFrameworkCore Git源代码地址:https://git ...