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

  • 步骤

  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文件如下:

[html] view plaincopy

  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文件如下:

[html] view plaincopy

  1. @echo off

  2. d:

  3. cd imweb

  4. ant deploy

  5. exit

ant+svn+tomcat实现自动构建,布布扣,bubuko.com

时间: 2024-10-07 03:05:55

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

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

Jenkins+maven+svn+tomcat 持续集成环境快捷部署

搭建持续集成环境 jenkins + maven + svn + tomcat 实现自动编译打包部署 1.环境准备 (1)JDK1.8.0_131                    #不低于1.7版本,这里用最新版本 (2)Apache Maven 3.3.9        #可以选择3.2.5或者3.3.9:不要使用3.5.0版本!! (3)SVN客户端(Subversion 1.6.11)         #程序版本控制SVN1.6.11 (4)Tomcat1.7(apache-tomc

Jenknis+Ant+SVN+Tomact 持续构建

我们公司现在的开发环境是这样的,在本地开发完一个新的功能,测试无误直接上传到SVN:接下来就是将这次开发的功能从界面到后面理一遍,理清晰了就开始一点点的复制到服务器上的IDE中编译和发布. 上面的情况已经很繁琐了,下面这种情况会更糟糕.上线的系统,后期维护中会对很多功能进行完善,系统也会有周期性的测试.我们公司就是这样的,公司每个组都有测试人员,同时会请第三方公司测试.问题来了,在哪里做测试呢?每次都需要临时搭建一个测试环境,供测试人员测试. 步骤: a.测试人员将提出的bug交给开发人员 b.

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

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.解压到某个目录(例如E:\apache-ant-1.7.0),即可使用. 添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:\apache-ant-1.7.0. 安装与

用Ant实现Java项目的自动构建和部署【转】

http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html 原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml        本文请勿转载! Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下

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

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.解压到某个目录(例如E:"apache-ant-1.7.0),即可使用. 添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:"apache-ant-1.7.0

使用ant自动构建项目

用Ant实现Java项目的自动构建和部署 原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml        本文请勿转载! Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.

SVN怎么触发Jenkins自动构建

通常,有几种方式可以在SVN仓库发生改变时触发Jenkins进行构建.第一种是,Jenkins主动轮询SVN仓库:第二种是,在SVN客户端(如TortoiseSVN)创建客户端hooks来触发构建:第三种是,在SVN服务器端,创建仓库hooks来触发构建.而我所要介绍的就是这第三种. 在http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks这里可以找到如何创建仓库hooks

Dockerfile 构建后端tomcat应用并用shell脚本实现jenkins自动构建

Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zhaoweifeng "zh******tech.cn" ENV LANG en_US.UTF-8 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone WORKDIR /home RUN mkdir JDK COPY jdk