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的插件。

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

<project name="imweb" 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}/WebContent"/>

	<!-- 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>

	<!-- 引用svn task文件,使用svn任务可以使用-->
	<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" />


	<!-- 清理-->
	<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只是检出最新的文件-->

	<target name="checkout" depends="init">
		<svn username="${svn.username}" password="${svn.password}">
            <export srcUrl="${svn.url}" revision="HEAD" destPath="${project}"  force="true" />
        </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" failοnerrοr="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" failοnerrοr="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


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值