ant+svn+tomcat实现javaweb项目的自动构建

来源:互联网 发布:java executorservice 编辑:程序博客网 时间:2024/06/06 07:25
     ant+svn+tomcat实现,从svn拉取javaweb项目,然后自动编译发布到固定的目录,之后使用windows任务计划功能每天定点执行
由运维人员拉取代码,这样就可以实现自动化操作,不用每次人为去干预。参考的连接:http://www.cnblogs.com/taoweiji/p/3700915.html,
http://blog.csdn.net/pengchang_1981/article/details/50441253,一开始下载了svnant-1.0.0的版本,报如下的错误:
svnant的BUILD FAILED Problem: failed to create task or type svnSetting Cause: The name is undefined原因,后面换成了svnant-1.0.0
的版本,将lib的目录放在ant的lib下,执行build.bat
就可以了。
    
    要完成这个前提是:你已经安装了tomcat/ant/jdk/svn。


    1.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>




    2.build.properties配置本地的tomcat/svn的JavaWeb项目地址以及用户名和密码
    tomcat.home=D:\exlisttomcat\apache-tomcat-6.0.35 ant.home=E:\ant\apache-ant-1.9.7-bin   svn.url=svn://192.168.0.1/mtp/ceshi/svn.username=qiulinhe svn.password=Qiulinhe2483215  deploy.name=imweb



    3.bat文件如下:
    @echo off      E:    cd imweb      ant deploy      exit     

   1. 运行报错的截图,由于svn用户名和密码写错,写对了就可以了,而且需要javaweb的根目录以供参考参考:


    运行成功之后,就会在目录下生成从svn拉取的代码:


    2.拉取了svn的代码之后,要对src的目录下的java代码进行编译,会出现很多编译的错误,原因是因为你的tomcat的lib中缺少了你工程目录运行的jar包,先复制进去就可以了,然后重新打包就可以了。成功之后会生成一个war包,如下图:


      这个war包,放在tomcat的webapps目录下,重启一下tomcat,会自动解压的,不过还有一个问题是这个工程,缺少了一些运行的jar包,还是无法运行,需要解决。

    ant工具还是很强大的,有时间要好好研究一下,就到此为止吧,希望对有同样需求的额人有帮助,感谢前辈的贡献。


    
0 0
原创粉丝点击