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%9C%80jar%E5%8C%85.rar

完整的build.xml如下,直接执行ant命令即可实现 自动登录svn、下载代码、编译、打war包、停止tomcat服务、拷贝到对应目录、启动tomcat服务、结束、

<?xml version="1.0" encoding="UTF-8"?>
<project name="testweb" default="deploy" basedir=".">
    <property name="webapp.name"    value="testweb"/>
    <property name="catalina.home" value="D:\testweb\tomcat_test"/>
    <property name="dist.dir" value="${basedir}"/>
    <property name="ant.home" value="D:\testweb\apache-ant-1.9.5" />
    <property name="webRoot.dir"   value="${basedir}/${webapp.name}/WebContent"/>
    <property name="src.dir1"      value="${basedir}/${webapp.name}/src"/>
    <property name="src.dir2"      value="${basedir}/${webapp.name}/syssrc"/>
    <property name="lib.dir"    value="${webRoot.dir}/WEB-INF/lib"/>
    <property name="class.dir"    value="${webRoot.dir}/WEB-INF/classes"/>
    <property name="svn.UserName" value="user" />
    <property name="svn.UserPassword" value="pass" />
    <property name="svn.URL" value="https://192.168.0.1/svn/test" />
    <property name="svn.Dist" value="${basedir}/${webapp.name}" />
    <!-- 目前使用执行bat命令发布  -->

    <!-- 由于代码有泛型,必须使用 jdt编译,引入4个eclipse的jar即可。 -->
    <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>

    <!-- SVN ANT -->
    <path id="ant.svn.classpath">
        <fileset dir="${ant.home}/lib">
            <include name="*.jar" />
        </fileset>
    </path>
    <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">
            <classpath refid="ant.svn.classpath" />
    </taskdef>
    <target name="checkout" description="checkout full web project">
        <delete dir="${basedir}/${webapp.name}"/>
        <svn username="${svn.UserName}" password="${svn.UserPassword}">
            <checkout url="${svn.URL}" revision="HEAD" destPath="${svn.Dist}" />
        </svn>
    </target>  

    <path id="compile.classpath">
        <fileset dir="${catalina.home}/lib">
            <include name="*.jar"/>
        </fileset>
        <fileset dir="${lib.dir}">
            <include name="*.jar"/>
        </fileset>
    </path>  

    <!-- 初始化,建立目录,将多个src目录复制到同一src目录 depends="checkout" -->
    <target name="copysrc" description="将多个src目录复制到同一src目录" depends="checkout">
        <copy todir="${src.dir1}">
            <fileset dir="${src.dir2}">
            </fileset>
        </copy>
    </target>

    <target name="clean" depends="copysrc">
        <delete dir="${class.dir}"/>
    </target>  

    <target name="compile" depends="clean">
        <mkdir dir="${class.dir}"/>
        <javac srcdir="${src.dir1}" destdir="${class.dir}" encoding="utf-8" source="1.6" target="1.6" nowarn="true" includeantruntime ="on">
            <compilerarg value="-Xlint:unchecked "/> <!-- 就是这句话!! -->
            <compilerarg value="-Xlint:deprecation  "/> <!-- 就是这句话!! -->
            <classpath refid="compile.classpath"/>
        </javac>
    </target>
     <!-- 拷贝资源文件 -->
    <target name="copyres" depends="compile">
        <copy todir="${class.dir}">
            <fileset dir="${src.dir1}">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>
     <!-- 生成war包 -->
    <target name="createwar" depends="copyres">
        <delete file="${dist.dir}/${webapp.name}.war"/>
        <war destfile="${dist.dir}/${webapp.name}.war">
            <fileset dir="${webRoot.dir}"/>
        </war>
    </target>  

    <target name="shutdowntomcat" description="Install web application" >
          <echo message="正在关闭服务器。。。" />
          <exec executable="${catalina.home}/bin/shutdown.bat" failonerror="false"></exec>
          <echo message="服务器成功关闭" />
          <sleep seconds="10"/>
          <!-- 删除之前解压的war包-->
          <delete dir="${catalina.home}/webapps/${webapp.name}"></delete>
          <delete dir="${catalina.home}/webapps/${webapp.name}.war"></delete>
    </target>

    <target name="startuptomcat" description="Remove web application" >
          <sleep seconds="10"/>
          <echo message="正在启动服务器。。。" />
          <exec executable="${catalina.home}/bin/startup.bat" failonerror="false"></exec>
          <echo message="服务器启动成功" />
    </target>

    <!--部署到tomcat下面,如果系统有多个tomcat,不能配置系统变量:CATALINA_HOME,可以直接修改 bat文件 -->
    <target name="deploy" depends="createwar">
        <ant target="shutdowntomcat"/>
        <!-- 拷贝war包-->
        <copy file="${dist.dir}/${webapp.name}.war" todir="${catalina.home}/webapps" />
        <ant target="startuptomcat"/>
    </target> 

</project>  
时间: 2024-12-28 21:17:12

ant+svn+tomcat实现项目自动部署的相关文章

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),

在Eclipse中使用Maven将Web项目自动部署到tomcat服务器

一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如下图所示: 在New窗口中选择 Maven -> Maven Project.点击[next]如下图所示: 1.2 选择项目路径 根据项目的实际情况选择项目的存放目录,也可以选择[Use default Workspace location]默认工作空间.如下图所示: 1.3 选择项目类型 在Artifact Id中选择maven-archetype-webapp,如下图所示

[转]Eclipse中的Web项目自动部署到Tomcat

原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误,解决后不再使用的话,很长时间重新使用,还是会犯同样的错误.(这是人,编程环境,思维方式 共同决定给的) 问题 这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Ecli

Eclipse中的Web项目自动部署到Tomcat

一.原因. 1.写java程序有一段时间了,但很久没用eclipse了,所以使用eclipse编写的web项目部署到tomcat 的方式也不是很清楚,下面记录一下将Eclipse 上的web项目自动部署到tomcat 上的方式: 二.部署问题 1.这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录下,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse中

myeclipse + tomcat 项目自动部署

在MyEclipse中设置项目的自动部署需要综合考虑两个方面: 1是MyEclipse本身,通过主菜单中project->auto ,另一个就是tomcat配置文件.配置文件包括 conf 下的 content.xml 以及 server.xml ,content.xml 中是<Context reloadable="true">.在server.xml 中有两个标签关系到配置,一个是 host标签中的配置<Host name="localhost&q

Eclipse中的Web项目自动部署到Tomcat(转)

转自:http://www.cnblogs.com/ywl925/p/3815173.html 问题: 这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse中的服务器,才能运行Web项目.所以要对Eclipse进行修改,才能将做好的项目,发布到Tomcat服务器上,发布到服务器上的Webapps文件夹下

Maven学习教程(七)------将web项目自动部署到tomcat下

一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Maven Project,如下图所示: 点击[next]如下图所示: 选择webapp,点击[next]如下图所示: 输入Group ID和 Artifact ID以及Package Group ID一般写大项目名称.Artifact ID是子项目名称. 例如Spring的web包,Group ID:org.springframework,artifactId:spring-web. Packag

jenkins实现项目自动部署

背景 整体思路 实现方式 1 自动化部署脚本 2 远程执行 3 配置jenkins任务 背景 之前给公司搭建过一套gitlab+gerrit+jenkins的持续集成环境,由于操作起来有点繁琐,自己也没太搞清楚该怎么用,所以一直就只用了gitlab来做代码管理.最近要做一个项目自动部署的功能,使用过jenkins一定知道他的自动化功能.所以就从jenkins创建自动部署任务的方式来入手. 整体思路 jenkins可以配置触发器,当有新的提交时,触发执行相应的任务.由于jenkins和项目部署不在

在Eclipse for mac中配置tomcat,使web项目自动部署到tomcat

jdk.tomcat的配置就不多说了,网上一大堆. 一.发现问题 在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并没有出现所建立的工程名字. 二.验证 很明显项目并没有自动部署到Tomcat的Webapps中而是部署在了别的容器中.在内置浏览器中输入http://localhost:8080/webDemo/login.jsp可正常打开.但在外部浏览器上打开h