持续集成+持续部署(一)ant+avn实现在tomcat6下一键部署

准备:

1、安装svn

2、安装ant:

    下载apache-ant-1.9.3,解压到D:/apache-ant-1.9.3,并配置环境变量ANT_HOME=D:\apache-ant-1.9.3;在path中添加%ANT_HOME%/bin;

3、下载svnant-1.3.0,解压后将lib目录下的所有jar包拷贝到(ant本身不支持svn,所以要有svnant包的支持)

    其目录下有个build.xml下载svn源码的例子,可以自己去看一下

4、配置CATALINA_HOME环境变量,否则无法启动tomcat

5、编写build.xml文件(可以放到任何目录下,运行时只需进入到该目录,在cmd下执行ant命令即可):

<?xml version="1.0" encoding="UTF-8"?>
<project default="startuptomcat" name="(项目名称)">
     
     <tstamp>
		<format property="NOW" pattern="MMddhhmm"/>
	 </tstamp>
 
     <property name="web.name" value="(项目名称)"></property>
     <property name="web.root" value="${web.name}/WebRoot"></property>
     <property name="web.WEB-INF" location="${web.root}/WEB-INF"></property>
     <property name="web.lib" location="${web.WEB-INF}/lib"></property>
     <property name="tomcat.home" location="F:/Tomcat"></property>
     
	<property name="build.dir" location="${web.name}/build"></property>
     <property name="src.dir" location="${web.name}/src"></property>
     <property name="build.classes" location="${build.dir}/classes"></property>
     <property name="build.war" location="${build.dir}/war"></property>

     <!--environment="env" 用${env.xxx}可以引用相应的系统变量或者环境变量等等。如${env.TOMCAT_HOME}就引用TOMCAT_HOME-->
     <property environment="env"></property>
     

	 <path id="svnant.classpath">
		<fileset dir="D:/apache-ant-1.9.3/lib">
		  <include name="*.jar"/>
		</fileset>
	  </path>
  
  <!-- load the svn task -->
  <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />
  
  <target name="checkoutThis">
	<delete dir="${web.name}"></delete>
    <svn username="(username)" password="(password)">
		<!-- 这里必须为https,不可以是svn。否则url识别不了 -->
      <export srcUrl="https://(IP)/svn/(项目名称)/source/(项目名称)" revision="HEAD" destPath="./${web.name}" />
    </svn>
  </target>


     <!--lib所在的路径,及tomcat的lib所在的路径-->
     <path id="complie">
         <fileset dir="${web.lib}" includes="*.jar"></fileset>
         <fileset dir="F:/Tomcat/lib" includes="*.jar"></fileset>
     </path>
     
     <target name="init" depends="checkoutThis">
         <delete dir="${build.dir}"></delete>
         <mkdir dir="${build.dir}"/>
         <mkdir dir="${build.classes}"/>
         <mkdir dir="${build.war}"/>
     	
     	<!--将配置文件拷贝过去-->
     	<copy todir="${build.classes}">
           <fileset dir="${src.dir}" excludes="**/*.java"></fileset>
        </copy>

<!--		备份安装包-->
		<mkdir dir="${tomcat.home}/webapps/(项目名称)_BAK/${NOW}"/>
		<copy todir="${tomcat.home}/webapps/(项目名称)_BAK/${NOW}" file="${tomcat.home}/webapps/(项目名称).war"/>
     </target>
     
     <!--编译-->
	 <!--注意:这里includeAntRuntime必须设置,否则报错。但是设置为false还是on目前还没有搞明白-->
 	 <!--设置编码格式为utf-8:encoding="UTF-8"-->
     <target name="complie" depends="init" >
         <javac destdir="${build.classes}" srcdir="${src.dir}" encoding="UTF-8" classpathref="complie" includeAntRuntime="false"></javac>
     </target>
     
     <!--把编译好的文件打成war包-->
     <target name="war" depends="complie">
         <war destfile="${build.war}/${web.name}.war" basedir="${build.classes}">
             <fileset dir="${web.root}" includes="**/*.*"></fileset>
             <lib dir="${web.lib}"></lib>
             <webinf dir="${web.WEB-INF}"></webinf>
             <classes dir="${build.classes}"></classes>
         </war>
     </target>
     
<!--     	停止tomcat服务 -->
    <target name="shutdowntomcat" depends="war">
		<echo message="停止tomcat服务..." />
         <exec executable="(shutdown.bat目录)" failοnerrοr="false"></exec>
         <sleep seconds="6"/>
		 <echo message="tomcat服务已停止" />
    </target>
    
    

    <!--部署到tomcat下面-->
    <target name="deploy" depends="shutdowntomcat">
		 <echo message="部署应用中..." />
        <copy file="${build.war}/${web.name}.war" todir="${tomcat.home}/webapps" />
        <delete dir="${tomcat.home}/webapps/${web.name}"></delete>
		 <echo message="部署应用完毕" />
    </target>	
    
    
 <!--startuptomcat-->
 <target name="startuptomcat" depends="deploy">
		 <echo message="启动tomcat服务..." />
        <exec executable="(startup.bat目录)" failοnerrοr="false"></exec>
        <sleep seconds="5"/>
		<echo message="项目部署完毕" />
    </target>

 </project>


6、大功告成,只要执行ant命令,既可以执行以下步骤:从svn下载最新代码--编译--打war包--停tomcat--部署--启动tomcat。实现持续集成与部署

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐崇拜234

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值