ant+svn+tomcat实现自动构建
前段时间用做了一个简单的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
- 步骤
- 首先安装配置好SVN服务器和ANT(具体的过程我就不累赘了)。
- 安装svnant插件,将svnant.1.3.0解压后的lib目录下所有的jar包拷贝至Ant安装目录下的lib文件夹。
- 编写脚本,如下
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文件如下:
- tomcat.home=D:/apache-tomcat-6.0.35
- ant.home=D:/apache-ant-1.7.1
- svn.url=https://hjt2012.com/svn/java/branches/imweb
- svn.username=svn
- svn.password=123456
- deploy.name=imweb
- 执行脚本
可以编写一个bat批处理文件,这样在执行的时候只需要双击一下就可以完全搞定。
bat文件如下:
- @echo off
- d:
- cd imweb
- ant deploy
- exit
ant+svn+tomcat实现自动构建的更多相关文章
- ant+svn+tomcat实现项目自动部署
因工作需要,研究并实现了 ant+svn+tomcat实现项目自动部署,其中参考了下面文章:http://www.cnblogs.com/taoweiji/p/3700915.html jar包需要e ...
- jenkins+maven+git+tomcat+salt自动构建
jenkins 安装步骤 环境: centos7,jdk1.8.0,jenkins2.165,maven3.5.2 一. 安装配置java环境 JDK1.8下载地址:http://www.orac ...
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包
首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】
引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...
- Ant + Jenkies +Tomcat 自动构建部署Web项目
前言:博主资历尚浅,很多东西都还在刚起步学习的阶段,这几天开发任务比较轻,就在自己window系统下,模拟部署远程服务器,利用Jenkies + Ant + Tomcat 搭建了一个自动发布部署的环境 ...
- jenkins 整合maven,svn(配置钩子程序实现提交代码自动构建),tomcat实现热部署(windows+linux分别实现)
springboot : https://blog.csdn.net/zjh_746140129/article/details/80904876 1 准备工作: (1)运行jenkins的tomca ...
- tomcat+svn+maven+jenkins实现自动构建
首先说明一个各软件的版本: tomcat:apache-tomcat-8.5.16.tar.gz maven:apache-maven-3.5.0-bin.tar.gz svn:subversion- ...
- 用Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
随机推荐
- 这篇文章讲得精彩-深入理解 Python 异步编程(上)!
可惜,二和三现在还没有出来~ ~~~~~~~~~~~~~~~~~~~~~~~~~ http://python.jobbole.com/88291/ ~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- Flask 环境搭建
引用自:https://www.cnblogs.com/rongtangzi/p/6623122.html #!/bin/env python # _*_coding:utf-8_*_ #!!!!!! ...
- 7-4素数环 uva 524
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> using ...
- maven加载第三方jar不能加载
这个问题处于项目组,总算是解决了.下面是一些自己的做法. 1.说明介绍 公司现在用的是spring+maven,使用的公共maven库没有问题,但是想要把一些老的项目改造这种框架会出现一些问题. 因为 ...
- java技术第二次作业
(一)学习总结 1.什么是构造方法?什么是构造方法的重载? 构造方法是用于对对象初始化的方法,当新对象被创建的时候,构造函数会被调用. 每一个类都有构造函数.在程序员没有给类提供构造函数的情况下,Ja ...
- Ubuntu crontab 定时 python 详细
Ubuntu系统,定时执行python脚本. 目的:每分钟执行一次timer_test.py timer_test.py 路径 /home/li/d/pythonwork/test/timer_ ...
- SQL SERVER字符串中的空格去除
1.LTRIM 删除起始空格后返回字符表达式. 语法 LTRIM ( character_expression ) 参数 character_expression 是字符或二进制数据表达式 ...
- 3682: Phorni 后缀平衡树 线段树
国际惯例的题面: 考虑如果没有强制在线我们能怎么水掉这个题,先构造出字符串,各种方法求一下后缀数组,然后线段树维护区间rank最小的位置即可.然而他要求强制在线,支持插入后缀,并比较后缀大小(求ran ...
- 10.17 NOIP模拟赛
目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...
- 用vue的自定义组件写了一个拖拽 组件,局部的 只能在自定义元素内的
简单实现 没有做兼容<!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...